首页 > 解决方案 > Android webview 无法打开 api.whatsapp

问题描述

我正在尝试使用 Android 网络视图从我的网页打开一个 api.whatsapp 链接,但我遇到了错误 ERR_UNKNOWN_URL_SCHEME

我已经多次更改 shouldOverrideUrlLoading 方法试图修复它,但意图永远不会奏效。以前有人遇到过同样的问题吗?

这是我的代码的当前版本:

public class MainActivity extends AppCompatActivity {
   // public static final String TAG = MainActivity.class.getSimpleName();
    private WebView mywebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mywebView = (WebView) findViewById(R.id.activity_main_webview);
        WebSettings webSettings = mywebView.getSettings();
        mywebView.loadUrl("https://mypage");
        webSettings.setJavaScriptEnabled(true);
        mywebView.setWebViewClient(new WebViewClient());
    }

    public class myWebClient extends WebViewClient {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            //String url = request.getUrl().toString();
                if (Uri.parse(url).getHost().equals("https://mypage")) {
                    return false;
                }
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                startActivity(intent);
                return true;
        }
    }

有什么建议么?

标签: javaandroidwebview

解决方案


将验证添加到您的shouldOverrideUrlLoading方法中,例如:

Patterns.WEB_URL.matcher(url).matches();

推荐阅读