WKWebview中打開第三方自定義url scheme

WKWebview默認(rèn)是不支持打開第三自定義的url scheme,解決辦法就是在頁面加載的錯誤回調(diào)或者跳轉(zhuǎn)回調(diào)里獲取url手動打卡。

swift代碼

func webView(webView: WKWebView, didFailNavigation navigation: WKNavigation!, withError error: NSError) {
    handleError(error)
}
 
func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
    handleError(error)
}
 
func handleError(error: NSError) {
    if let failingUrl = error.userInfo["NSErrorFailingURLStringKey"] as? String {
        if let url = NSURL(string: failingUrl) {
            let didOpen = UIApplication.sharedApplication().openURL(url)
            if didOpen {
                print("openURL succeeded")
                return
            }
        }
    }
}

oc代碼


-(void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error;
{
    [self handleError:error];
}

// 頁面加載失敗時調(diào)用
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error
{
    [self handleError:error];
}

- (void)handleError:(NSError *)error
{
    NSString *url = error.userInfo[NSURLErrorFailingURLStringErrorKey].absoluteString;

if ([strRequest hasPrefix:@"weixin://"]) {
        // 攔截點擊鏈接
//        [self handleCustomAction:strRequest];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:strRequest]];
        // 不允許跳轉(zhuǎn)
        decisionHandler(WKNavigationActionPolicyCancel);
    }else {
        // 允許跳轉(zhuǎn)
        decisionHandler(WKNavigationActionPolicyAllow);
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,188評論 4 61
  • 嗯哼嗯哼蹦擦擦~~~ 轉(zhuǎn)載自:https://github.com/Tim9Liu9/TimLiu-iOS 目錄 ...
    philiha閱讀 4,992評論 0 6
  • 有媒體報道,一女記者去房地產(chǎn)公司采訪,遭遇對方搶奪攝像機,并發(fā)生肢體沖突,過程比較惡劣,按照當(dāng)事人回應(yīng):“被抱摔”...
    姬鯤閱讀 318評論 0 1
  • 有一個角落,舒服,安靜,陣陣芬芳,陽光灑滿地板。。。我和我腦海中的空間里的你,可以說說話,不知道有多幸福愜意。什么...
    桃木鐲閱讀 294評論 0 0
  • 安靜下來的時候,才會有大把的時間拿來思考。 忙碌的時候,身體超機能工作,只有閑暇下來,才意識到累。所以,考試過后,...