WebView中JavaScript如何监听按Home键退出事件?
在微信里测试了下,当iPhone按住 home键退出微信再打开。
光阴似箭催人老,日月如移越少年。
不知道WebView支持下方哪一个
window
blur
document
visibilitychange
visibilitychange事件示例和shim可见DEMO
js是做不到的。可以java中做监听,通过WebView调页面中js函数达到目的。
目前来说浏览器里的js是做不到的,不过你可以让native来帮助你实现这个功能。就算如此,也仅仅是实现类似的应用进入后台监听而已。
第一步,在你的applicationDidEnterBackground中发送一个NSNotification
applicationDidEnterBackground
第二步,在你的WebViewController中接收这个NSNotification(这里我觉得通过NSNotificationCenter来做这个事最合适,你想用其他方式也行)
第三步,
// 为了方便阅读,写成这样 [webView stringByEvaluatingJavaScriptString:@" var pauseEvent = new Event('pause'); document.dispatchEvent(pauseEvent); "];
最后一步,现在,你可以在你的js文件中像这样来监听应用的进入后台事件:
document.addEventListener('pause', function () { console.log('app just entered background.'); });
最后打个广告,我们做了一个让web app像native app来运行的手机浏览器(当然也包括了你的这个需求,监听应用的进入后台事件),支持各种 PhoneGap API,支持直接调起 native 的微信分享(再也不用在网页上画个箭头指向右上角了)。
下载地址: http://lydiabox.com API 文档:http://wiki.lydiabox.com 开发者中心: http://developer.lydiabox.com
不知道WebView支持下方哪一个
window
之上的blur
事件document
之上的visibilitychange
事件visibilitychange
事件示例和shim可见DEMOjs是做不到的。可以java中做监听,通过WebView调页面中js函数达到目的。
目前来说浏览器里的js是做不到的,不过你可以让native来帮助你实现这个功能。就算如此,也仅仅是实现类似的应用进入后台监听而已。
第一步,在你的
applicationDidEnterBackground
中发送一个NSNotification第二步,在你的WebViewController中接收这个NSNotification(这里我觉得通过NSNotificationCenter来做这个事最合适,你想用其他方式也行)
第三步,
最后一步,现在,你可以在你的js文件中像这样来监听应用的进入后台事件:
最后打个广告,我们做了一个让web app像native app来运行的手机浏览器(当然也包括了你的这个需求,监听应用的进入后台事件),支持各种 PhoneGap API,支持直接调起 native 的微信分享(再也不用在网页上画个箭头指向右上角了)。
下载地址: http://lydiabox.com
API 文档:http://wiki.lydiabox.com
开发者中心: http://developer.lydiabox.com