WebView + WebChromeClient method onCreateWindow not called for target=“_blank”

前端 未结 3 1728
面向向阳花
面向向阳花 2020-12-08 12:06

I\'m trying to develop a custom browser with WebView using Android API level 10 (sdk 2.3.3), unfortunately I don\'t know how to interc

3条回答
  •  长情又很酷
    2020-12-08 12:29

    Make sure you set supportMultipeWindows to true. Without it the onCreateWindow of the WebChromeClient will never get called.

    WebSettings settings = webView.getSettings();
    settings.setSupportMultipleWindows(true);
    

    Then register a WebChromeClient and override onCreateWindow

     webView.setWebChromeClient(new WebChromeClient() {
            @Override public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, Message resultMsg)
            {
                WebView newWebView = new WebView(getContext());
                addView(newWebView);
                WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
                transport.setWebView(newWebView);
                resultMsg.sendToTarget();
                return true;
            }
        });
    

提交回复
热议问题