android - 如何解决 err_unknown_url_scheme?
问题描述
MainActivity.Java
package com.example.neermaicom;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.WindowManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import static android.content.Intent.*;
public class MainActivity extends AppCompatActivity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
webView = findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient()); // this will load site in our app
webView.loadUrl("http://www.neermai.com");
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
}
//This method require to use back button if want to go previous web page
@Override
public void onBackPressed() {
if(webView.canGoBack()){
webView.goBack();
}else {
super.onBackPressed();
}
}
}
这是我现在的代码。工作正常。但只有当我通过点击社交媒体分享帖子时才会出现问题。上面写着 net: err_unknown_url_scheme。请帮我。谢谢
解决方案
HTML
以 mailto: 开头的链接,whatsapp: 不以"http://"
or开头"https://"
,因此 WebView 无法将其解析到正确的位置,我们应该使用意图来重定向 url。
因此setWebViewClient
,对于您的 WebView,如下所示并覆盖shouldOverrideUrlLoading
:
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url == null || url.startsWith("http://") || url.startsWith("https://")) return false;
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
view.getContext().startActivity(intent);
return true;
} catch (Exception e) {
return true;
}
}
});
你很高兴。
希望这会帮助你。
推荐阅读
- sql - sql server 上的小时计算
- javascript - 如何在输入下显示数据列表,边距顶部
- php - PHP 页面调用 PHP 文件 - 对缓存感到困惑
- c# - 使用带有类的 c# 将数据插入 MS Access
- r - R中DT中的多个表格标题
- azure - 关于将数据上传到 Blob 存储的 Azure 数据工厂管道
- c# - 如何在 JIRA C# 中发送 POST 返回 statusCode 400
- openai-gym - 自定义 OpenAi Gym Taxi v2 环境
- r - 在闪亮的模块中使用 rhandsontable
- kubernetes - 如何探索 Kubernetes 文件夹?