Android 应用程序中的 Facebook 分享按钮

Facebook share button in Android Application

FB 分享按钮可以在 Chrome 浏览器中成功打开 FB 信使应用程序。

但是,同样的源代码,如果在AndroidAPP应用程序中显示,则无法打开FB Messenger应用程序,而该应用程序在Chrome浏览器中显示网页。

如何解决?

您可以为您的 WebView 提供一个自定义 WebViewClient 实现来检查 facebook.com 链接(或您喜欢的任何链接),然后显式触发 Intent 这样其他人可以选择 Action,而不是让 WebView 按它认为合适的方式处理它。

webview.setWebViewClient(new WebViewClient() {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        try {
            Uri uri = Uri.parse(url);

            if (uri.getHost().contains("facebook.com")) {

                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                startActivity(intent);

                return false;
            }

        } catch(Exception e){
            e.printStackTrace();
        }

        return super.shouldOverrideUrlLoading(view, url);
    }

});