Android WebView 仅适用于 API 28
Android WebView only works for API 28
我在我的 assets
文件夹中本地存储了一个网站(即 HTML
、CSS
和 Javascript
文件)。使用 WebView
,我可以在我尝试使用 Android 9、模拟或硬件的任何 phone 上显示该网站。但是当 API 低于 28 时, WebView
是空白的(显然是因为 Javascript 没有加载;网站需要 Javascript 才能显示任何内容)。这是我使用的代码:
webView = (WebView) findViewById(R.id.webview);
webView.loadUrl("file:///android_asset/website.html");
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setDisplayZoomControls(false);
webSettings.setSupportZoom(true);
webSettings.setDefaultTextEncodingName("utf-8");
webView.addJavascriptInterface(jsInterface, "JSInterface");
可能是什么错误?
我通过修复 JavaScript 文件中的一个错误解决了这个问题;我曾在某处使用 "append" 而不是 "appendChild",这对于 API 28+ 显然不是问题,但否则会导致错误。
我在我的 assets
文件夹中本地存储了一个网站(即 HTML
、CSS
和 Javascript
文件)。使用 WebView
,我可以在我尝试使用 Android 9、模拟或硬件的任何 phone 上显示该网站。但是当 API 低于 28 时, WebView
是空白的(显然是因为 Javascript 没有加载;网站需要 Javascript 才能显示任何内容)。这是我使用的代码:
webView = (WebView) findViewById(R.id.webview);
webView.loadUrl("file:///android_asset/website.html");
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setDisplayZoomControls(false);
webSettings.setSupportZoom(true);
webSettings.setDefaultTextEncodingName("utf-8");
webView.addJavascriptInterface(jsInterface, "JSInterface");
可能是什么错误?
我通过修复 JavaScript 文件中的一个错误解决了这个问题;我曾在某处使用 "append" 而不是 "appendChild",这对于 API 28+ 显然不是问题,但否则会导致错误。