1. 程式人生 > >webview onCreateWindow url 新標籤的開啟 target="_blank"

webview onCreateWindow url 新標籤的開啟 target="_blank"

擷取所有的a標籤帶 target=”_blank”執行跳轉新的頁面
1 給webView設定webSettings.setSupportMultipleWindows(true);支援開啟多視窗

2WebView.setWebViewClient(new WebViewClient() {
…重寫的其他方法

下面這個是關鍵,當發現有target=”_blank”會自動呼叫該方法
@Override
public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, Message resultMsg) {
//
WebView newWebView = new WebView(view.getContext());
newWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//獲取要跳轉的Url 在這裡處理你要做的操作,在這裡我是跳轉了一個類

            Intent intent = new Intent(view.getContext(),MainActivity.class);
            intent.putExtra("url",url);
            view.getContext().startActivity(intent);

            return true;
        }
    });
    WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
    transport.setWebView(newWebView);
    resultMsg.sendToTarget();
    return true;
}

})