在混合 android 应用程序中导航时,在 chrome 设备中看到多个分离的 webview 实例
Multiple detached webview instances seen in chrome devices while navigating in hybrid android app
我们有一个混合 android 应用程序。我正在尝试从 WebView
上下文来回导航到 Native
上下文。使用 chrome://inspect/#devices
我注意到检查的多个设备实例是 detached
,而其中一个是 attached
,如 chrome 中所示。
参考 SO-28254614,现在我还没有开发 WebView,但据我所知,我们的应用程序 WebView 不是使用 Cordova 设计的,而是在 JS 中。
我的问题是:
- 为什么我们会在 chrome 上看到这些分离的设备?
- 这是否可能是 Android WebView 中的泄漏?
所以这些网络检查员的工作方式是他们使用 RemoteDebug Protocol。
此协议定义了交换的各种消息和命令,让您 'inspect' 您的页面。
检查器的一个实例一次只能连接到一个客户端。因此,假设您在 web 视图和本机上下文之间来回切换,您基本上是在为每个新的上下文切换生成新的 web 视图。
这表明之前打开的网络视图现在是 'orphaned' 并且出于所有实际目的 detached
。
您可以尝试通过在 Web 视图上调用 destroy()
来通知 VM 不再使用 Web 视图,让垃圾收集器知道它不再需要。
希望这能让人们更深入地了解幕后发生的事情。
我们有一个混合 android 应用程序。我正在尝试从 WebView
上下文来回导航到 Native
上下文。使用 chrome://inspect/#devices
我注意到检查的多个设备实例是 detached
,而其中一个是 attached
,如 chrome 中所示。
参考 SO-28254614,现在我还没有开发 WebView,但据我所知,我们的应用程序 WebView 不是使用 Cordova 设计的,而是在 JS 中。
我的问题是:
- 为什么我们会在 chrome 上看到这些分离的设备?
- 这是否可能是 Android WebView 中的泄漏?
所以这些网络检查员的工作方式是他们使用 RemoteDebug Protocol。
此协议定义了交换的各种消息和命令,让您 'inspect' 您的页面。
检查器的一个实例一次只能连接到一个客户端。因此,假设您在 web 视图和本机上下文之间来回切换,您基本上是在为每个新的上下文切换生成新的 web 视图。
这表明之前打开的网络视图现在是 'orphaned' 并且出于所有实际目的 detached
。
您可以尝试通过在 Web 视图上调用 destroy()
来通知 VM 不再使用 Web 视图,让垃圾收集器知道它不再需要。
希望这能让人们更深入地了解幕后发生的事情。