当我点击一个超链接target="_blank" attributes,WebChromeClient#onCreateWindow被调用,但我找不到一个方法,现在新窗口将打开什么网址?主页url是我唯一能知道的东西?
我想根据目标网址更改应用行为.感谢任何帮助,谢谢!
也许我来晚了,但上述解决方案在 Android 10 上都不适合我。所以我是这样做的:
@Override
public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, android.os.Message resultMsg) {
WebView newWebView = new WebView(view.getContext());
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(newWebView);
resultMsg.sendToTarget();
newWebView.setWebViewClient(new WebViewClient() {
@SuppressLint("NewApi")
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return shouldOverrideUrlLoading(view, request.getUrl().toString());
}
@Override
public boolean shouldOverrideUrlLoading(WebView View, String url) {
if (url != null && !url.isEmpty()) {
// HERE IS URL WHICH YOU WANT
}
return false;
}
});
return true;
}
Run Code Online (Sandbox Code Playgroud)
我可以通过如下调用来获得点击的网址
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
WebView.HitTestResult result = view.getHitTestResult();
int type = result.getType();
String data = result.getExtra();
// do something
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3218 次 |
| 最近记录: |