navigator.share无法在WebView中工作

时间:2018-10-09 14:15:22

标签: android android-webview navigator

我的Android应用程序的WebView内的navigator.share() JavaScript函数不能正常工作吗?通过网络浏览器访问相同的URL时,将弹出本机Android共享对话框,但从我的应用程序的WebView访问URL时则不会。

  • URL使用https。
  • 共享操作由onClick用户触发。
  • setJavaScriptEnabled设置为true
  • setDomStorageEnabled也设置为true

1 个答案:

答案 0 :(得分:0)

最终,我将以下设置用于Web视图。对我来说,不仅仅是navigator.share,还有更多的东西,但是对我有用的东西可能对其他人有用。值得一试。

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
mWebView.getSettings().setAppCacheEnabled(false);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAllowContentAccess(true);
mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);

mWebView.addJavascriptInterface(new JavaScriptShareInterface(this), "AndroidShareHandler");

AndroidShareHandler是一个全局JavaScript函数,可在Web视图中使用,并且可以通过例如单击按钮来触发。

shareButton.addEventListener('click', () => {
    window.AndroidShareHandler.share('https://stackoverflow.com');
});