2C2P WKWebView无法跳转到Line APP进行支付

Custom scheme URL 在WKWebView中默认是不支持的 (但Safari可以).
我们可以通过NSError来进行一些处理从而使得程序可以正常跳转:

- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error {
    LKHideBubble();
    // Line 支付会走两次这个失败回调, 如果不做处理,这里有可能跳转两次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中的白名单, 否则一样跳转不了...

你可能感兴趣的:(2C2P WKWebView无法跳转到Line APP进行支付)