Whatsapp共享无法在Webview

时间:2017-11-14 11:37:37

标签: java android android-intent webview whatsapi

我在 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的://发送文本=我%20interested%20英寸%20your%20car%20for%20salecould?   没有加载,因为:

     

净:: 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 那么如何防止这种情况,以便Share按钮正常工作

请帮我提供必要的脚本 感谢

2 个答案:

答案 0 :(得分:1)

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

    @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;
    }

答案 1 :(得分:0)

使用以下代码我可以在webview中打开url:放入 将代码段写入您的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;
         }
     }