我正在尝试使用Page Visibility Api来检测何时在iOS中显示Web内容。我有简单的JS:
window.addEventListener("pageshow", function(){ alert("page shown"); }, false);
当标签处于活动状态时,或者当safari被最小化然后重新显示时,警报会在移动Safari中按预期触发。
但是,如果我在UiWebView中托管Web内容,则事件不会触发。还有其他人遇到过这个问题吗?如果是这样的任何解决方法?
...谢谢
答案 0 :(得分:1)
UIWebView不支持该事件,但您可以考虑从应用程序本机触发事件
这是如何从Objective-C调用JavaScript函数的 Objective C send data to phonegap and call javascript function
然后,您只需使用上面的代码在处理启动或重启暂停的应用程序时通知webview
Objective C: How to check if application is currently active (i.e. user is using it)?应该提供帮助
答案 1 :(得分:0)
我完全赞同上面的答案。即使在UIWebview上无法触发pageVisibilityChange事件。您仍然可以通过本机代码检测它,然后通过JS-bridge或JS绑定技术通知JS。
还有其他方法可以通过setInterval实现此功能。您可以在应用程序午餐开始时初始化当前时间戳的变量,然后在每个间隔回调函数中将此变量增加一秒。你需要将当前时间戳与这个变量进行比较,如果它们差异超过一秒,则表示setInterval回调已被阻止!因此,您可以指示该页面已离开至少serval秒