WinRT-如何启用;“定时注销”;Webview中的功能或检测Webview中的指针按下/轻敲事件
我正在开发WinRT应用程序。其中一个要求是应用程序应该具有“定时注销”功能。这意味着,在任何屏幕上,如果应用程序已空闲10分钟,应用程序应注销并导航回主屏幕 通过使用此链接,并应用下面链接中给出的逻辑 由于webview不支持任何触摸事件或点击事件,因此它在除webview之外的所有屏幕上都可以正常工作。 如何在WinRT webview中启用“定时注销”功能 欢迎任何帮助WinRT-如何启用;“定时注销”;Webview中的功能或检测Webview中的指针按下/轻敲事件,webview,windows-runtime,microsoft-metro,windows-8.1,winrt-xaml,Webview,Windows Runtime,Microsoft Metro,Windows 8.1,Winrt Xaml,我正在开发WinRT应用程序。其中一个要求是应用程序应该具有“定时注销”功能。这意味着,在任何屏幕上,如果应用程序已空闲10分钟,应用程序应注销并导航回主屏幕 通过使用此链接,并应用下面链接中给出的逻辑 由于webview不支持任何触摸事件或点击事件,因此它在除webview之外的所有屏幕上都可以正常工作。 如何在WinRT webview中启用“定时注销”功能 欢迎任何帮助 谢谢 不幸的是,Windows 10中对WebView的改进并没有解决这个限制 以下是两件您可以尝试的事情: 1)
谢谢 不幸的是,Windows 10中对WebView的改进并没有解决这个限制 以下是两件您可以尝试的事情: 1) 当用户导航到页面时,开始10分钟计时器。10分钟后,显示一个带有“确定””按钮的模式对话框,该按钮类似于“单击继续浏览…”。然后,用户有10秒钟(或您选择的任何时间)来单击“确定”。如果没有,则导航回主屏幕 2) WebView确实有工作
GotFocus
和LostFocus
事件。也许您可以使用这些方法重新启动10分钟计时器
主意
如果您的WebView正在使用ms appx web、ms local stream、或https内容加载内容(这需要在您的appxmanifest中使用内容URI规则)或如果您使用的是NavigateToString
,则您可以执行以下操作:
private void WebView_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
{
MyWebView.InvokeScript("eval", new[]
{
"document.addEventListener('mousemove', function(){window.external.notify('MouseMove');});"
});
}
private void MyWebView_ScriptNotify(object sender, NotifyEventArgs e)
{
if( e.Value == "MouseMove" )
{
// Restart timer
}
}
不幸的是,Windows10中WebView的改进并没有解决这个限制 以下是两件您可以尝试的事情: 1) 当用户导航到页面时,开始10分钟计时器。10分钟后,显示一个带有“确定””按钮的模式对话框,该按钮类似于“单击继续浏览…”。然后,用户有10秒钟(或您选择的任何时间)来单击“确定”。如果没有,则导航回主屏幕 2) WebView确实有工作
GotFocus
和LostFocus
事件。也许您可以使用这些方法重新启动10分钟计时器
主意
如果您的WebView正在使用ms appx web、ms local stream、或https内容加载内容(这需要在您的appxmanifest中使用内容URI规则)或如果您使用的是NavigateToString
,则您可以执行以下操作:
private void WebView_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
{
MyWebView.InvokeScript("eval", new[]
{
"document.addEventListener('mousemove', function(){window.external.notify('MouseMove');});"
});
}
private void MyWebView_ScriptNotify(object sender, NotifyEventArgs e)
{
if( e.Value == "MouseMove" )
{
// Restart timer
}
}