java - Whatsapp 共享在 Webview 中不起作用

标签 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>

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

Web page not available

The web page at whatsapp://send?text=I'm%20interested%20in%20your%20car%20for%20salecould not be loaded because:

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 那么如何防止这种情况发生,以便共享按钮正常工作

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

最佳答案

您应该在 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;
    }

关于java - Whatsapp 共享在 Webview 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47284846/

相关文章:

android - 无法将 Gradle 项目与数据绑定(bind)库同步

android - 为什么 "Enter"键在 React Native 中不触发 onKeyPress?

android - 通过使用 Intent 在 Activity 之间传递值

android - 如何使用 Intent 中的附加功能

java - 如何在速度模板中准备包含动态数据的表格?

java - 值比较和值分配之间是否存在任何性能差异?

java - 从 json 获取键名和键值

android - 在 Android 上使用虚拟串行通信在两个进程(应用程序)中读取/写入字节

android - 从 Activity 切换到嵌套的 PreferenceScreen

java - Java中int a[5],int a[],int a[]={2,3}的区别