-(WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
当一个URL里面包含_blank的跳转链接时, 需要在此代理方法里面做一些处理,
-(WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures{
NSLog(@"进入UI");
WKNavigationType tpye = navigationAction.navigationType;
//navigationAction.request为即将加载的请求
NSURLRequest *que = navigationAction.request;
//sourceFrame一般为主isMainFrame, 且sourceInfo.request.URL一般是主窗口加载的第一个URL
WKFrameInfo *sourceInfo = navigationAction.sourceFrame;
NSLog(@"WKNavigationType = %ld \n que.URL = %@",tpye,que.URL);
NSLog(@"sourceInfoRequest = %@ \n mainFrame = %d",sourceInfo.request.URL,sourceInfo.isMainFrame);
WKFrameInfo *frameInfo = navigationAction.targetFrame;
NSLog(@"frameInfo = %@ \n mainFrame = %d",frameInfo.request.URL,frameInfo.isMainFrame);
if (![frameInfo isMainFrame]) {
[webView loadRequest:navigationAction.request];
}
return nil;
}
网友评论