【问题标题】:Whatsapp share not working in WebviewWhatsapp 共享在 Webview 中不起作用
【发布时间】:2017-11-14 11:37:36
【问题描述】:

我在 android studio 中使用 webview 创建了一个简单的网站应用程序,并授予它互联网访问权限 在应用上启用 java 脚本

当我使用此代码添加 WhatsApp 分享按钮时

 <button>
<a href="whatsapp://send?text=HERE GOES THE URL ENCODED TEXT YOU WANT TO SHARE" data-action="share/whatsapp/share">Share via Whatsapp</a>
</button>

这在所有移动浏览器中都运行良好,但是当我尝试在我的应用上使用它时,我收到一个错误屏幕提示

网页不可用

网页 在whatsapp://send?text=I'm%20interested%20in%20your%20car%20for%20salecould 未加载,因为:

net::ERR_UNKNOWN_URL_SCHEME

这是我在 mainactivity.java 中的代码

package com.a4extras.ukzz.whatsappdaily;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;




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);
        WebSettings webSettings = mywebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mywebView.loadUrl("http://ukzz4u.blogspot.com/2017/11/whatsapp-share-01.html");
        mywebView.setWebViewClient(new WebViewClient());
    }



    @Override
    public void onBackPressed() {
        if (mywebView.canGoBack()) {
            mywebView.goBack();
        } else {
            super.onBackPressed();
        }
    }}

这是因为我的应用程序将 whatsapp:// 作为 URL 那么如何防止这种情况,以便分享按钮正常工作

请帮我编写必要的脚本 谢谢

【问题讨论】:

    标签: java android android-intent webview whatsapi


    【解决方案1】:

    您应该在 WebViewClient 中覆盖该特定 url 的 url 加载。

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
    
            boolean overrideUrlLoading = false;
    
            if (url != null && url.startsWith("whatsapp://")) {
    
                view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
    
                overrideUrlLoading = true;
    
            } else {
    
                view.loadUrl(url);
            }
    
            return overrideUrlLoading;
        }
    

    【讨论】:

      【解决方案2】:

      使用以下代码,我可以在 webview 中打开 url:将 将代码 sn-p 发送到您的 onCreate() 方法

      wv1.setWebViewClient(new MyBrowser());
      wv1.getSettings().setLoadsImagesAutomatically(true);
      wv1.getSettings().setJavaScriptEnabled(true);
      wv1.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
      wv1.loadUrl("http://ukzz4u.blogspot.com/2017/11/whatsapp-share-01.html");
      

      然后将这个类添加到你的活动中:

      private class MyBrowser extends WebViewClient {
               @Override
               public boolean shouldOverrideUrlLoading(WebView view, String url)  {
                   view.loadUrl(url);
                   return true;
               }
           }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多