Se WebView página rótulo <a> vinculado é target = "_ blank", e seu WebView e não fez qualquer tratamento, desta vez será inválido situação cliques, não é de alguma forma?
-alvo definido por uma pluralidade de tipos
_blank: Ligação disse que vai abrir uma nova janela
_self: Permite que a janela atual ou o quadro onde o link (o padrão)
_parent: Permite ligação na janela pai ou quadro
_top: para abrir um novo link no quadro representação nível superior
ele também pode especificar diretamente o nome de quadro para o alvo, mas também representa um link em uma estrutura aberta, tais como clicar CSDN na árvore esquerda, abrir um novo link é este à direita!
A solução é simples, herança WebChromeClient, reescrita onCreateWindow é a chave,
1, primeiro configurar, ou não vai retornos de chamada:
webSetting.setSupportMultipleWindows(true);
Em segundo lugar, em seguida olhar para o código:
@Override
public boolean onCreateWindow(WebView webView, boolean isDialog, boolean isUserGesture, Message resultMsg) {
X5WebView x5WebView = new X5WebView(activity);
X5WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
x5WebView.setWebChromeClient(new CustomWebChromeClient(activity));
x5WebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//拦截url,跳转新窗口
if (activity != null) {
Intent intent = new Intent(activity, MyWebActivity.class);
intent.putExtra(Constants.INTENT_KEY_URL, url);
activity.startActivity(intent);
}
//防止触发现有界面的WebChromeClient的相关回调
return true;
}
});
transport.setWebView(x5WebView);
resultMsg.sendToTarget();
return true;
}