0

我正在尝试 android webview,但是当我想在我的手机中连接 whatsapp 应用程序时,whatsapps 按钮出现错误,错误类似于 - ERR_UNKNOWN_URI_SCHEME,下面是我的代码,请帮助我 -

public class MainActivity extends AppCompatActivity {
        private WebView mywebView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mywebView=(WebView) findViewById(R.id.webview);
            mywebView.setWebViewClient(new WebViewClient());
            mywebView.loadUrl("https://royalahm.com");
            WebSettings webSettings=mywebView.getSettings();
            webSettings.setJavaScriptEnabled(true);
        }
        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){
                if(url.startsWith("whatsapp:")) {
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    intent.setData(Uri.parse(url));
                    startActivity(intent);
                    return true;
                }
                return false;
            }
        }
        @Override
        public void onBackPressed(){
            if(mywebView.canGoBack()) {
                mywebView.goBack();
            }
            else{
                super.onBackPressed();
            }
        }
    }
4

1 回答 1

0

尝试这个 :

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){
            if( url.startsWith("http:") || url.startsWith("https:") ) {
                return false;
            }

            try {
                // Otherwise allow the OS to handle things like tel, mailto, etc.
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                startActivity(intent);
            }catch (Exception e){
                Log.i("IvaExc",e.toString());
            }
            return true;
        }
    }
于 2020-11-15T09:55:48.390 回答