最近和公司別的部門的技術部做合作。我們的產品打開淘寶的鏈接時。會被淘寶的js代碼直接呼起淘寶或者天貓的App,但是他們的一直不行。因爲代碼寫的時間太長了。一時沒想起來自己做了什麼設置。所以重新看了一下自己的webView的相關代碼。
他們之所以webview無法呼起三方的app,是因爲WKWebView的一個代理沒有實現。這也是出於安全考慮。所以沒有使用這個代理
上代碼
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
decisionHandler(WKNavigationActionPolicyAllow);
}
- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler {
decisionHandler(WKNavigationResponsePolicyAllow);
}
記得decisionHandler(WKNavigationResponsePolicyAllow)的狀態設置爲WKNavigationResponsePolicyAllow,別是WKNavigationResponsePolicyCancel
爲了一些安全和自定義在- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler 方法裏面加入一些邏輯判斷代碼,加強一下自己的安全性。