我们有一个混合 android 应用程序。我正在尝试从 WebView
来回导航到 Native
上下文。使用 chrome://inspect/#devices
我注意到被检查设备的多个实例是 detached
而其中一个将被 attached
作为以 Chrome 显示。
引用SO-28254614 ,现在我还没有开发 WebView,但据我所知,我们的应用程序 WebView 不是使用 Cordova 设计的,而是在 JS 中。
我的问题是:
- 为什么我们会在 chrome 上看到这些分离的设备?
- 这是否可能是 Android WebView 中的泄漏?
最佳答案
所以这些网络检查员的工作方式是他们使用 RemoteDebug Protocol .
此协议(protocol)定义了可交换的各种消息和命令,以便您“检查”您的页面。
检查器的一个实例一次只能连接到一个客户端。因此,假设您在 web View 和 native 上下文之间来回切换,您基本上会为每个新的上下文切换生成新的 web View 。
这表明之前打开的 WebView 现在是“孤立的”并且出于所有实际目的分离
。
您可以尝试通过在 webview 上调用 destroy()
来通知 VM webview 不再被使用,让垃圾收集器知道它不再需要。
希望这能让人们更深入地了解幕后发生的事情。
关于javascript - 在混合 android 应用程序中导航时在 chrome 设备中看到多个分离的 webview 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34102318/