WKWebView_tips
封装了 WKWebView,做一些记录
👉iOS 12 无法设置 UA
在其他 iOS 系统中,如果我们想设置 UA 的话,我们只需要这样做就可以了
1 | [self.wkWebView.evaluateJavaScript:@"navigator.userAgent" completionHandler:^(NSString* _Nullable oldUA, NSError * _Nullable error) { |
可是在 iOS 12 上,这么设置,你会发现,在 js 中取 UA 还是原来的。
后来发现,只要你使用 wkWebView 调用了 navigator.userAgent
,你再设置,会无法设置成功。也就是你用 A 调用了获取 UA 的 JS 方法,在设置 A 的 UA,将无法成功。所以我们在 iOS 12,需要先用一个假的 WKWebView 来获取,然后设置真正的 WKWebView 的 UA
1 | self.fakeWKWebView = [[WKWebView alloc] init]; |
👉Xcode 11.2 打开 WKWebView 疯狂输出 log
在 Xcode 11.2 打开一个 WKWebView 会输出一堆log
[Process] kill() returned unexpected error 1
这是一个 WebKit 的一个 bug
👉状态栏问题
如果 WKWebView 页面会有显示或者隐藏状态栏的需求,你会发现,在一些系统上,显示或隐藏状态栏,页面会跳动,这是 scrollView 的问题,只需要这么设置即可
1 | if (@available(iOS 11.0, *)) { |