WhatsApp自定义URL方案在Webview中不起作用

时间:2019-07-31 07:22:43

标签: android url android-webview whatsapp

我正在用android进行webview,其中我正在调用该网站中的网站链接,我正在调用 web.whatsapp.com 链接。现在,此链接在桌面版和移动版视图中都可以正常工作,而如果我在webview中打开该链接,则会显示错误,即网页不可用,以便更清楚地看到错误图片

enter image description here

这是webview android的代码

public class MainActivity extends AppCompatActivity {
    WebView webView;
    ProgressBar bar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = (WebView) findViewById(R.id.webView2);
        bar =(ProgressBar) findViewById(R.id.progressBar2);
        webView.setWebViewClient(new myWebClient());
        webView.loadUrl("http://.../");
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebViewClient(new myWebClient());
    }

    public class myWebClient extends WebViewClient{

        @Override
        public void onPageFinished(WebView view, String url) {
            bar.setVisibility(View.GONE);
            view.setVisibility(webView.VISIBLE);
            super.onPageFinished(view, url);
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            bar.setVisibility(View.VISIBLE);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            bar.setVisibility(View.GONE);
            return super.shouldOverrideUrlLoading(view, url);
        }
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()){
            webView.goBack();
            return true;
        }

        return super.onKeyDown(keyCode, event);
    }
}

1 个答案:

答案 0 :(得分:2)

尝试在您的Web客户端中temp并使用下面给出的代码。

override shouldOverrideUrlLoading