WKWebView使用注意事项
-
customUserAgent
尽量避免直接覆盖系统的userAgent默认值。
-
WKScriptMessageHandler
- addScriptMessageHandler: name:
重复添加同一个message handler的name的handler对象,会导致crash,比如:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.webView.configuration.userContentController addScriptMessageHandler:self name:@"webEvent"];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self.webView.configuration.userContentController addScriptMessageHandler:self name:@"webEvent"];
}
这种代码错误,重复添加会导致程序crash:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to add script message handler with name 'toServer' when one already exists.' *** First throw call stack:
-
estimatedProgress
progress并不是一系列连续的值,可能就只有三个值0.0,0.5,1.0。
-
WKWebView设置圆角、颜色
通过self.webView.layer.cornerRadius设置圆角是不行的。
通过这个设置的是webView圆角,但WKWebView上会添加这些view在上面
WKScrollView 白色
WKContentView 与WKWebView颜色一致
WKCompositingView 白色
这些覆盖在webView上面的view的圆角不会随webView被设置而改变。
设置颜色也没用,会被覆盖住没法显现出来。
解决办法:
将webView添加在一个view上,然后设置这个view的 self.webView.layer.cornerRadius是可以的。