我正在制作一个狗哨应用程序,使用 html5 来执行 javascript 和 jquery webview。
webview 加载得很好,但 Javascript 无法在我的 7.0 及更高版本的设备中执行。
对于 lollypop 5.0 和 5.5 设备,html 调用的 javascript 按预期工作。一切都正确编译。
在 7.0 之后,当按下按钮发出声音时,日志不会记录 html5 按钮点击的情况。
尽管我什至启用了互联网权限,但所有文件都从 Assets 本地加载。 7.0 是否有任何更改会阻止 javascript 工作?就像我之前说过的, Lollipop 中的一切都运行得很好。我该如何解决?
这是我的 WebView 中的一些代码: 已编辑:2019 年 11 月 20 日
WebView webView = (WebView) this.findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
if (Build.VERSION.SDK_INT > 17) { webSettings.setMediaPlaybackRequiresUserGesture(false); }
String myurl="file:///android_asset/index.html";
webSettings.setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setDomStorageEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient());
webSettings.setDefaultTextEncodingName("utf-8");
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.loadUrl(myurl);
最佳答案
尝试为您的浏览器添加 WebViewClient
和 WebChromeClient
。
webview.setWebViewClient(new MyWebViewClient());
webview.setWebChromeClient(new MyWebChromeClient());
关于javascript - Webview Javascript 在 Android 7.0 及更高版本中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58897170/