WebView 无法加载某些网页

Ani*_*ale 6 android webview kotlin

尝试加载某些网页时出现以下错误

解析元元素内容时出错:“;” 不是有效的键值对分隔符。请使用“,”代替。

我该如何解决?

Muh*_*raz 7

如果您使用 webview.loadUrl() 方法加载网页,请确保(网页的 html 的)元标记中的content属性中的元素应使用逗号“,”分隔,且不使用分号“;”分隔。也不是空格,例如:

像这样:

<meta name="viewport" content="key1=value1,key2=value2,key3=value3"> //best practice
Run Code Online (Sandbox Code Playgroud)

即使支持但不推荐:

<meta name="viewport" content="key1=value1;key2=value2;key3=value3"> 
Run Code Online (Sandbox Code Playgroud)

即使支持但不推荐:

<meta name="viewport" content="key1=value1;key2=value2;key3=value3">
Run Code Online (Sandbox Code Playgroud)

因此,在 html 的head标签中看到标签具有name="viewport" ,它应该在其content属性中包含以逗号分隔的元素(即 key=values),因此修复后应该如下所示:

<head>
...
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
....
</head>
Run Code Online (Sandbox Code Playgroud)

参考:https://developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag

另请参阅此类似线程:Android Webview - Scale image to fit screenproperly with one loadUrl


Ani*_*ale -1

我能够通过实现以下代码来解决这个问题:

webView_courseLesson.settings.javaScriptEnabled = true
webView_courseLesson.settings.loadWithOverviewMode = true
webView_courseLesson.settings.useWideViewPort = true
Run Code Online (Sandbox Code Playgroud)

默认情况下,Android 框架关闭 javaScript 支持。尽管您可以在此处查看文档http://developer.android.com/guide/practices/security.html