80,351
社区成员
发帖
与我相关
我的任务
分享
/**
* 增加任意线程访问的{@link #mNowUrl}
* 增加scheme拦截
*/
public static class MyWebViewClient extends WebViewClient {
public String mNowUrl;//当前正在访问的url,js回调用到
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
if (Build.VERSION.SDK_INT > 20) {
String url = request.getUrl().toString();
if (!url.startsWith("http") && url.contains(":")) {//不是http开头的scheme就隐式跳转
try {
view.getContext().startActivity(new Intent().setAction(Intent.ACTION_VIEW).setData(Uri.parse(url)));
return true;
} catch (Exception ignored) {
}
} else {
mNowUrl = url;
}
}
return super.shouldOverrideUrlLoading(view, request);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (Build.VERSION.SDK_INT < 21) {
if (!url.startsWith("http") && url.contains(":")) {//不是http开头的scheme就隐式跳转
try {
view.getContext().startActivity(new Intent().setAction(Intent.ACTION_VIEW).setData(Uri.parse(url)));
return true;
} catch (Exception ignored) {
}
} else {
mNowUrl = url;
}
}
return super.shouldOverrideUrlLoading(view, url);
}
}