在使用WKWebView的時(shí)候,網(wǎng)頁調(diào)用window.open(url,"_blank”);發(fā)現(xiàn)沒有任何響應(yīng),也沒有調(diào)用任何回調(diào),即便寫了createWebViewWithConfiguration方法也沒用,最終找到原因是沒有設(shè)置:
PReferences.javaScriptCanOpenWindowsAutomatically = YES;最終解決的代碼:
初始化代碼:
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; config.processPool = processPool; WKPreferences *preferences = [WKPreferences new]; preferences.JavascriptCanOpenWindowsAutomatically = YES;//很重要,如果沒有設(shè)置這個(gè)則不會回調(diào)createWebViewWithConfiguration方法,也不會回應(yīng)window.open()方法 config.preferences = preferences; self.webView = [[WKWebView alloc] initWithFrame:self.view.bounds configuration:config]; // self.webView = [[WKWebView alloc] initWithFrame:self.view.bounds]; self.webView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; self.webView.backgroundColor = [UIColor clearColor]; self.webView.contentMode = UIViewContentModeRedraw; self.webView.opaque = YES; [self.view addSubview:self.webView]; [_webView setUserInteractionEnabled:YES];//是否支持交互 _webView.navigationDelegate = self; _webView.UIDelegate = self;//很重要,如果沒有設(shè)置這個(gè)則不會回調(diào)UIDelegate相關(guān)所有方法createWebViewWithConfiguration方法代碼:在本W(wǎng)ebview打開這個(gè)網(wǎng)址
-(WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures{ NSLog(@"createWebViewWithConfiguration request %@",navigationAction.request); if (!navigationAction.targetFrame.isMainFrame) { [webView loadRequest:navigationAction.request]; } if (navigationAction.targetFrame == nil) { [webView loadRequest:navigationAction.request]; } return nil;}參考:http://blog.csdn.net/u011619283/article/details/52135982
新聞熱點(diǎn)
疑難解答