Android ERR_UNKNOWN_URL_SCHEME
程序员文章站
2022-06-21 20:38:36
笔者在Android WebView中拉起App报错ERR_UNKNOWN_URL_SCHEME错误原因很简单,WebView默认只支持https http 等协议,并不支持AndroidManifet中定义的这个scheme协议。如下是我原代码WebViewClient mWebviewclient = new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(...
笔者在Android WebView中拉起App报错ERR_UNKNOWN_URL_SCHEME
错误原因很简单,WebView默认只支持https http 等协议,并不支持AndroidManifet中定义的这个scheme协议。如下是我原代码
WebViewClient mWebviewclient = new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//返回true代表在当前webview中打开,返回false表示打开浏览器
view.loadUrl(url);
return true;
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
// TODO Auto-generated method stub
super.onReceivedError(view, errorCode, description, failingUrl);
}
};
webView.setWebViewClient(mWebviewclient);
调整shouldOverrideUrlLoading代码段,当遇到我定义的scheme协议时,通过Intent的方式打开即可
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//return super.shouldOverrideUrlLoading(view, url);
if (url.startsWith("http:")||url.startsWith("https:")||url.startsWith("ftp")){
view.loadUrl(url);
return true;
}
else if (url.startsWith("scheme://")){
Intent intent=new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
return false;
}
本文地址:https://blog.csdn.net/iningwei/article/details/108586570
上一篇: 高通携手“金耳朵” 打造全新音频编解码器
下一篇: Android自定义实现漂亮的软键盘
推荐阅读
-
Android单项绑定MVVM项目模板的方法
-
Android实现购物商城
-
Android共享元素动画效果显示问题解决
-
android要做附近商家显示,显示多少米范围内商家,php数据库如何设计坐标的
-
Android使用ViewDragHelper实现QQ6.X最新版本侧滑界面效果实例代码
-
Android8.0 java.lang.IllegalStateException: Not allowed to start service Intent app is in background
-
android中判断sim卡状态和读取联系人资料的方法
-
在做 iOS 和 Android 的 HTML5 开发时,你都掉到过哪些坑里?
-
XDA大神挖出Android 11隐藏功能:反向无线充电
-
Android 使用Picasso加载网络图片等比例缩放