WKWebView 打開內(nèi)部鏈接無(wú)法跳轉(zhuǎn)的問題

WKWebView 加載完鏈接后點(diǎn)擊內(nèi)部鏈接無(wú)法跳轉(zhuǎn),是因?yàn)?lt;a href = "xxx" target = "_black"> 中的target = "_black" 是打開新的頁(yè)面,所以無(wú)法在當(dāng)前頁(yè)面打開,需要在當(dāng)前頁(yè)重新加載url

a 超連接中target的意思
  _blank -- 在新窗口中打開鏈接
  _parent -- 在父窗體中打開鏈接
  _self -- 在當(dāng)前窗體打開鏈接,此為默認(rèn)值
  _top -- 在當(dāng)前窗體打開鏈接,并替換當(dāng)前的整個(gè)窗體(框架頁(yè))

解決方法一WkUIDelegate:

-(WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
{
    NSLog(@"createWebViewWithConfiguration");
    if (!navigationAction.targetFrame.isMainFrame) {
        [webView loadRequest:navigationAction.request];
    }
    return nil;
}

解決方法二 WKNavigationDelegate:


-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{
    //如果是跳轉(zhuǎn)一個(gè)新頁(yè)面
    if (navigationAction.targetFrame == nil) {
        [webView loadRequest:navigationAction.request];
    }
 
    decisionHandler(WKNavigationActionPolicyAllow);
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容