我可以从android webview打开whatsapp应用程序吗

abh*_*tra 5 php android webview

我做了一个网站的网络视图。现在我想将我的网络视图中的一些数据共享到 whatsapp 应用程序。我能够打开 whatsapp web,但我的客户希望我打开 whatsapp 应用程序而不是 whatsapp web。我怎样才能做到这一点?

这是我在我的网站中打开 whatsapp 网站所做的工作:

<a class="social-icon whatsapp" 
  href="javascript:popWin('https://api.whatsapp.com/send?text=Product%20Name:-<?php echo $productName; ?>.%20Product%20link:-<?php echo $productUrl; ?>', 'whatsapp', 'width=640, height=480, left=0, top=0, location=no, status=yes, scrollbars=yes, resizable=yes');"
  title="<?php echo $this->__('Share on Whatsapp') ?>" 
  data-action="share/whatsapp/share">
  <span><i class="fa fa-whatsapp"></i></span>
</a>
Run Code Online (Sandbox Code Playgroud)

小智 8

@Override
        public boolean shouldOverrideUrlLoading(WebView wv, String url) {
            if(url.startsWith("tel:") || url.startsWith("whatsapp:")) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse(url));
                startActivity(intent);
                return true;
            }
            return false;
        }
Run Code Online (Sandbox Code Playgroud)

将此代码放在您的mWebView.setWebViewClient(new WebViewClient() 中。它将完美适用于所有链接,如tel:whatsapp:等。


小智 7

   webView.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView wv, String url) {
            if(url.startsWith("tel:") || url.startsWith("whatsapp:") || url.startsWith("intent://") || url.startsWith("http://") ) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse(url));
                startActivity(intent);
                webView.goBack();
                return true;
            }
            return false;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);

            invalidateOptionsMenu();
        }

        public void onReceivedError(WebView view, int errorCode,
                                    String description, String failingUrl) {
            try {
                invalidateOptionsMenu();
            } catch (Exception e) {

            }

            if (webView.canGoBack()) {
                webView.goBack();
            }

        }


        public void onPageFinished(WebView view, String url) {
            //     pullToRefresh.setRefreshing(false);

            invalidateOptionsMenu();
        }



    });
Run Code Online (Sandbox Code Playgroud)

我的问题使用这段代码解决了。


per*_*ile 5

使用这个并且工作正常。(@NSMedia-Solution)只要放

'myWebView.goBack();'

返回之前(不要在 WhatsApp 网络中导航)

myWebView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView wv, String url) {
                if(url.startsWith("tel:") || url.startsWith("whatsapp:")) {
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    intent.setData(Uri.parse(url));
                    startActivity(intent);
                    myWebView.goBack();
                    return true;
                }
                return false;
            }
        });
Run Code Online (Sandbox Code Playgroud)


Rak*_*h P 4

您可以使用,它对我有用:

选项第一-

<a href="whatsapp://send?text=Hello friend!" data-action="share/whatsapp/share">Share</a>
Run Code Online (Sandbox Code Playgroud)

选项二-

<a href="https://api.whatsapp.com/send?text=Hello friend!" data-action="share/whatsapp/share">Share</a> 
Run Code Online (Sandbox Code Playgroud)

两种选择都对我有用..

如果您无法正常工作,请更新您手机的 Android 版本并更新 Whatsapp 版本