navigator.share()
JavaScript函数无法在我的Android应用程序的WebView中运行是有原因的吗?通过网络浏览器访问相同的URL时,将弹出本机Android共享对话框,但从我的应用程序的WebView访问URL时则不会弹出。
setJavaScriptEnabled
设置为true
。setDomStorageEnabled
也设置为true
。最终,我将以下设置用于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(), "AndroidShareHandler");
AndroidShareHandler将成为全局JavaScript函数,可在Web视图中使用,并且可以通过单击按钮触发,例如:
Java:
package com.your.package;
import android.webkit.JavascriptInterface;
public class JavaScriptShareInterface {
@JavascriptInterface
public void share(String url) {
// your share action
}
}
JavaScript:
shareButton.addEventListener('click', () => {
window.AndroidShareHandler.share('https://stackoverflow.com');
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句