Android WebView仅适用于API 28

问题描述 投票:0回答:1

我已经在assets文件夹(即HTMLCSSJavascript文件)中本地存储了一个网站。使用WebView,我可以在尝试使用Android 9(模拟)或硬件的任何电话上显示网站。但是,当API低于28时,WebView为空白。这是我使用的代码:

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");

可能是什么错误?

android webview android-9.0-pie
1个回答
0
投票

由于启用了JavaScript并添加了javascript接口,因此在加载URL之前,请在以下行中添加

webView.setWebViewClient(new WebViewClient());

所以您的代码将是

webView = (WebView) findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient());

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");
webView.loadUrl("file:///android_asset/website.html"); //at the last 
© www.soinside.com 2019 - 2024. All rights reserved.