Android API 21 中的 Webview 为空白/白色
Posted
技术标签:
【中文标题】Android API 21 中的 Webview 为空白/白色【英文标题】:Webview is blank / white in Android API 21 【发布时间】:2021-10-25 20:38:31 【问题描述】:我正在制作一个以 webview 作为主要内容的应用程序,但是当我在 API 21 (android 5.0) 中运行应用程序时,活动是空白的,但在 API 30 中,webview 会加载网络
这是我的代码,以防出现问题
webClient =findViewById(R.id.WebView);
WebSettings settings = webClient.getSettings();
settings.setjavascriptEnabled(true);
settings.setAllowContentAccess(true);
settings.setDomStorageEnabled(true);
webClient.setWebViewClient(new WebViewClient()
public boolean shouldOverrideUrlLoading(WebView view, String url)
view.loadUrl(url);
return false;
);
webClient.loadUrl(url);
【问题讨论】:
【参考方案1】:我认为如果您编辑一些代码就可以了。看看我在下面的情况下是如何做到的。用这种方式给你试试..
选项 1:
用于显示网页
webView = findViewById(R.id.webview);
String url = "https://android.com/" ; //Enter your url here
Log.i(TAG, "checkConnection: Url > " + url);
webView.loadUrl(url);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.setWebViewClient(new WebViewClient());
webView.setWebViewClient(new Browser_Home());
webView.setWebChromeClient(new ChromeClient());
webSettings.setAllowFileAccess(true);
webSettings.setAppCacheEnabled(true);
需要在 shouldOverrideUrlLoading 方法中返回 true
public boolean shouldOverrideUrlLoading(WebView view, String url)
view.loadUrl(url);
return true;
选项 2:
可能是硬件加速的原因
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
webSettings.setMixedContentMode(0);
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
else if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
else
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
xml文件
<WebView
android:id="@+id/webview"
android:layout_
android:layout_
android:layerType="software"/>
Android 清单
android:hardwareAccelerated="true"
更多详情请参考this链接。
【讨论】:
当你输入你的代码时,我得到了与前一个相同的错误,一切都是空白的,调试器说这个I / chromium: [INFO: CONSOLE (1)]" Uncaught TypeError: Object.entries is not a function ", source: http://daikigei.steppehost.tk/assets/bundle.03602209.js (1)
我产生了同样的问题,并且 option2 在我的应用程序中工作。请添加您的错误代码的更多详细信息
这里我把结构留给大家理解pastebin.com/DNa8X1EL以上是关于Android API 21 中的 Webview 为空白/白色的主要内容,如果未能解决你的问题,请参考以下文章