Chrome WebView: 触发原生Android 分享功能

Chrome WebView: triggering native Android Share function

是否有可能在 Chrome WebView 中调用 Android 的本地共享(文件)功能?我正在创建一个混合 Ionic AngularJS 应用程序,并希望使用 Android 的本地文件共享功能。我尝试过不同的插件,但它们都对设备上存在的每个应用程序使用自定义共享实现,这还不够。

你试过制作JavascriptInterface

将此添加到您的 MainActivity.java

public class WebViewJavaScriptInterface {
        private Context context;

        @JavascriptInterface
        public void sharingIsCaring(String code) {
            openSharing(code);
        }
}

这是开始分享的动作:

public void openSharing(String code) {
        String message = "Your share message: " + code;
        Intent share = new Intent(Intent.ACTION_SEND);
        share.setType("text/plain");
        share.putExtra(Intent.EXTRA_TEXT, message);
        startActivity(Intent.createChooser(share, "Share your code"));
    }

那么,如何触发 @JavascriptInterface

您需要在 OnCreate() 方法中添加:

view.addJavascriptInterface(new WebViewJavaScriptInterface(this), "SmashIt");

所以要从JS触发它你只需要调用函数sharingIsCaring()

您需要通过为您调用的函数放置 SmashIt 来做到这一点,这样 Android 就会知道您正在调用他。所以它看起来像这样:

SmashIt.sharingIsCaring(code)