【问题标题】:Start whatsapp from webview从 webview 启动 whatsapp
【发布时间】:2016-02-11 08:32:20
【问题描述】:

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

shouldOverrideUrlLoading()

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

whatsapp://send?text=

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

net::ERR_UNKNOWN_URL_SCHEME

【问题讨论】:

标签: android webview whatsapp


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    确保在text= 之后有一个正确的 URL 编码字符串

    【讨论】:

      【解决方案3】:

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

      使用预先填写的消息创建您自己的链接 自动出现在聊天的文本字段中,使用 https://wa.me/whatsappphonenumber/?text=urlencodedtext哪里 whatsappphonenumber 是国际格式的完整电话号码,并且 URL-encodedtext 是 URL 编码的预填充消息。

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

      注意:如果您使用手机浏览器(至少来自 Android)点击链接,它会打开 WhastApp 应用程序

      【讨论】:

        【解决方案4】:
        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;
                    }
                }
            });
        

        【讨论】:

          【解决方案5】:

          请勿将wa.me 用作在whatsapp 上共享文本的域。只需在此处自己测试此 URL:http://wa.me/?text=mytest。我明白了:

          错误

          页面未找到

          不要使用wa.me 域。使用api.whatsapp.com 域。 wa.me 要求您使用电话号码。嗯,通常情况下,您希望将共享 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

          【讨论】:

            【解决方案6】:
             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;
                    }
                });
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-08-17
              • 2023-03-22
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多