从 webview 启动 whatsapp

Start whatsapp from webview

我有一个应用程序可以在网络视图中加载报纸网站。在该站点中,您可以在 facebook、twitter 和 whatsapp 上分享新闻。我有 facebook 和 twitter 的链接覆盖

shouldOverrideUrlLoading()

我不知道如何启动 whatsapp 应用程序。它使用自定义 URL 方案:

whatsapp://send?text=

我得到:无法加载位于 whatsapp://send?text= 的网页,因为:

net::ERR_UNKNOWN_URL_SCHEME

我建议使用来自 this 问题的循环:使用 Intent.ACTION 会给你最好的结果。

一定要在 text=

之后有一个正确的 URL 编码字符串

我刚刚发现可以打开与号码的对话 Using Click to Chat

To create your own link with a pre-filled message that will automatically appear in the text field of a chat, use https://wa.me/whatsappphonenumber/?text=urlencodedtext where whatsappphonenumber is a full phone number in international format and URL-encodedtext is the URL-encoded pre-filled message.

示例:https://wa.me/15551234567?text=I'm%20interested%20in%20your%20car%20for%20sale

注意: 如果您使用移动 phone 浏览器(至少从 Android 开始)单击 link,它会打开 WhastApp 应用程序=14=]

this.webView.setWebViewClient(new WebViewClient(){
        @Override
        public boolean  shouldOverrideUrlLoading(WebView view, String url) {
            if (url != null && url.startsWith("https://wa.me")) {
                view.getContext().startActivity(
                        new Intent(Intent.ACTION_VIEW, Uri.parse(url.replace("+",""))));

                return true;

            } else {
                return false;
            }
        }
    });

请勿将 wa.me 用作在 whatsapp 上共享文本的域。自己在这里测试 URL:http://wa.me/?text=mytest。我看到了:

ERROR

PAGE NOT FOUND

不要使用 wa.me 域。使用 api.whatsapp.com 域。 wa.me 要求您使用 phone 号码。好吧,通常情况下,您希望共享 URL 共享给 其他人 用户 知道,所以,您希望留空。看看...

https://api.whatsapp.com/send?text=YourShareTextHere

https://api.whatsapp.com/send?text=YourShareTextHere&phone=123

适合我!希望这对外面的人有帮助!

如果您有兴趣观看跟踪这些 URL 的项目,请查看我们!:https://github.com/bradvin/social-share-urls#whatsapp

 webView.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if(url.startsWith("tel:") || url.contains("https://wa.me/")) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse(url));
                startActivity(intent);
                return true;
            }
            return false;
        }
    });