android里弹出窗口,android:在我的webview中打开弹出窗口

经过3年的漫长岁月,我回答了自己的问题:

当在网页内触摸链接时,根据网页实现,有两种可能的情况:

1)链接将在同一窗口中打开.

2)链接将在新窗口中打开.

那么使用下面的代码很容易处理第一种情况:

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

return true;

}

在WebViewClient实现中覆盖shouldOverrideUrlLoading将在同一窗口中打开链接.

现在让我们看看第二种情况,其中网页请求在新窗口中打开网址.对于这种情况,我们需要告诉我们的webview支持多个窗口,如下所示:

webView.getSettings().setSupportMultipleWindows(true);

然后在webview中添加新的Web chrome客户端以在网页请求新窗口时获取事件

webView.setWebChromeClient(new WebChromeClient() {

@Override

public boolean onCreateWindow(WebView view, boolean isDialog,

boolean isUserGesture, Message resultMsg) {

WebView newWebView = new WebView(WebpageActivity.this);

newWebView.getSettings().setJavaScriptEnabled(true);

newWebView.getSettings().setSupportZoom(true);

newWebView.getSettings().setBuiltInZoomControls(true);

newWebView.getSettings().setPluginState(PluginState.ON);

newWebView.getSettings().setSupportMultipleWindows(true);

view.addView(newWebView);

WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;

transport.setWebView(newWebView);

resultMsg.sendToTarget();

newWebView.setWebViewClient(new WebViewClient() {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

return true;

}

});

return true;

}

}

});

干杯!!!