Custom scheme URL 在WKWebView中默認(rèn)是不支持的 (但Safari可以).
我們可以通過(guò)NSError來(lái)進(jìn)行一些處理從而使得程序可以正常跳轉(zhuǎn):
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error {
LKHideBubble();
// Line 支付會(huì)走兩次這個(gè)失敗回調(diào)秸谢, 如果不做處理忆植,這里有可能跳轉(zhuǎn)兩次Line APP
NSString *urlStr = error.userInfo[@"NSErrorFailingURLStringKey"];
if (!(urlStr && urlStr.length)) {
return;
}
if ([self.handledFailedUrls containsObject:urlStr]) {
return;
}
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlStr]]) {
if (@available(iOS 10.0, *)) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr] options:nil completionHandler:nil];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]];
}
[self.handledFailedUrls addObject:urlStr];
}
}
Note: 在iOS9中,如果你要想使用canOpenURL, 你必須添加URL schemes到Info.plist中的白名單, 否則一樣跳轉(zhuǎn)不了...