我正在开发一个WinRT应用程序。其中一个要求是应用程序应具有“定时注销”功能。这意味着在任何屏幕上,如果应用程序闲置10分钟,应用程序应该注销并导航回主屏幕。
使用此链接并应用以下链接
中给出的逻辑https://stackoverflow.com/a/18878954/3560390
除了webview之外,它在所有屏幕中均可正常使用,因为webview不支持任何触摸事件或点击事件。
https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.webview.aspx
如何在WinRT webview中启用“定时注销”功能?
欢迎任何帮助..
谢谢!
答案 0 :(得分:0)
不幸的是,在Windows 10中对WebView的改进还没有解决这个限制。
以下是您可以尝试的两件事:
1)当用户导航到该页面时,开始您的10分钟计时器。 10分钟后,显示一个带有“确定”按钮的模态对话框,其中显示“单击以继续浏览... ”之类的内容。然后用户有10秒钟(或您选择的任何内容)点击确定。如果没有,则导航回主屏幕。
2)WebView确实有GotFocus
和LostFocus
个工作。也许您可以使用这些方法重新启动10分钟计时器。
如果 您的WebView正在加载内容 ms-appx-web,ms-local-stream,或 https 内容(在appxmanifest中需要内容URI规则) OR 如果您使用的是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
}
}