iOS的UiWebView /页面可见性Api:“pageshow”事件不会触发

我正在尝试使用页面可见性Api来检测Web内容在iOS中显示的时间。 我有简单的JS:

window.addEventListener("pageshow", function(){ alert("page shown"); }, false); 

如果选项卡处于活动状态,或Safari最小化,然后重新显示,移动Safari浏览器中的警报就会触发。

但是,如果我在UiWebView中托pipeWeb内容,事件不会触发。 有没有其他人遇到过这个问题? 如果有的话,任何解决这个?

谢谢…

UIWebView不支持这个事件,但是你可以看看触发事件你自己从应用程序本身

这个如何从Objective-C Objective C调用JavaScript函数将数据发送到phonegap并调用javascript函数

然后你只需要使用上面的代码来通知webview,当你处理应用程序正在启动或从暂停重新启动

目标C:如何检查应用程序目前是否处于活动状态(即用户正在使用它)? 应该有帮助

我完全同意上面的答案。 即使在UIWebview中不能触发pageVisibilityChange事件。 你仍然可以通过本地代码来检测它,然后通过JS桥或JS绑定技术来通知JS。

还有其他的方法可以通过setInterval实现这个function。 您可以在应用程序启动时初始化当前时间戳的variables,然后在每个间隔callback函数中将此variables增加一秒。 您需要将当前时间戳与此variables进行比较,如果它们在一秒之内有差异,则表示setIntervalcallback已被阻止! 所以你可以指出页面已经离开了最less的秒数