javascript - 当用户按下主页按钮时,WebView 中的 Html 页面不会触发 'visibilitychange' 事件(iOS 8)

标签 javascript ios webview

我有一个 html 页面使用 Canvas 绘图来渲染每一帧。当页面在 safari 中显示时,如果用户按下主页按钮,则不会调用“requestAnimationFrame”,并且页面上的动画会暂停,直到用户返回到 safari。但同样的设备,当页面显示在第三方原生应用程序的 webView 中时,当用户按下主页按钮时,应用程序似乎永远不会停止调用“requestAnimationFrame”,而当用户返回应用程序时,应用程序会卡住甚至崩溃。 . 所以我尝试在用户按下主页按钮时调用“clearAnimationFrame”来解决这个问题。但我发现当用户按下主页按钮时,webView 中的页面不会触发“visibilitychange”事件。这种行为与 safari 不同。然后我尝试了“blur”、“pagehide”事件,但都没有用!

谁能告诉我如何解决这个问题,或者任何提示都会很有帮助。 提前致谢!

顺便说一句,我的手机系统版本是iOS 8.0。

最佳答案

破解此问题的唯一方法是您需要通过 native 代码实现类似的功能。我的意思是,如果 RAF 或 visibilityChange 不起作用,您仍然可以检测到 webview 的离开,例如按下主页按钮。然后使用 js-bridge 通知 JS 一个“native-visibilityChange”事件。 我们的产品正在使用它来解决您在我们的 Canvas 游戏或其他网络应用程序中所说的问题。

关于javascript - 当用户按下主页按钮时,WebView 中的 Html 页面不会触发 'visibilitychange' 事件(iOS 8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28343965/

相关文章:

ios - Xcode Analyzer 警告 - 字典值不能为 nil

javascript - 点击事件中的全日历错误时间

javascript - 如何将 Visualforce 组件中的脚本中的值传递到其 Controller

javascript - 使用ajax提交表单后进度条无法重置

javascript - 解析 javascript reduce 文档

java - 如何在 WebView 中使用自定义视频播放器?

iOS 上的 JQuery 缓慢、不稳定且不稳定

ios - FMDB 阻塞用户界面。但为什么?对替代实现有什么建议吗?

android - 如何在android应用程序中以在线和离线模式加载或检索网页?

android - ScrollView中的WebView在向上滑动时调用refreshControl React Native Android一直