webview回调怎么解决

首页 > 实用技巧 > 作者:YD1662023-07-08 23:27:56

总的来说:在一个客户端 App 中,多个 WKWebView 使用中会共享一个 UI 进程(与 App 进程共享)、共享一个 Networking 进程、每个 WKWebView 实例独享一个 WebContent 进程。

示例:

webview回调怎么解决,(5)

此处关于 WebContent Process 和 Networking Process 的启动规则,官方文档并未解释特别清楚,且因为版本迭代等原因,文档与目前最新规则也略有出入。为避免混淆与歧义,下面结合 WebKit 源码稍作分析。

WebContent 进程启动规则

根据官方文档描述:

A WKProcessPool object represents a single process that WebKit uses to manage web content. To provide a more secure and stable experience, WebKit renders the content of web views in separate processes, rather than in your app’s process space. By default, WebKit gives each web view its own process space until it reaches an implementation-defined process limit. After that, web views with the same WKProcessPool object share the same web content process.

规则是优先使用创建新进程,当进程上线超过某阈值之后则会共享,在 WebKit 内部由 maximumProcessCount 控制。但是此规则只对 iOS13 之前的系统生效,iOS13 之后的系统,WKWebView 每次创建实例都会启动一个新的 WebContent Porcess。相关实现如下。

iOS13 前:

webview回调怎么解决,(6)

webview回调怎么解决,(7)

iOS 13 及以后:

webview回调怎么解决,(8)

上一页1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.