WebView无法加载一些网页。

6

在尝试加载某些网页时,我遇到了以下错误:

解析元素内容时出错:';'不是有效的键值对分隔符。请改用','。

我该如何解决这个问题?


请添加您的代码片段以详细说明问题,这将有助于确定问题。您是否正在使用webview.loadUrl()方法加载网页? - Muhammad Sheraz
2个回答

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

像这样:

<meta name="viewport" content="key1=value1,key2=value2,key3=value3"> //best practice

即使被支持,但不推荐以下操作:

<meta name="viewport" content="key1=value1;key2=value2;key3=value3"> 
甚至包括被支持但不建议使用的功能:
<meta name="viewport" content="key1=value1;key2=value2;key3=value3">

因此,请查看您的 HTML 页面头部中带有 name="viewport"meta 标签,它应该在其 content 属性中用逗号分隔其元素(即键值对)。修复后应该是这样的:

<head>
...
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
....
</head>

参考:https://developer.mozilla.org/zh-CN/docs/Mozilla/Mobile/Viewport_meta_tag

还可以查看这个类似的线程:Android Webview - 用一个loadUrl合适地缩放图像以适应屏幕


我有相同的情况,但该网站不是我的网站,也无法更改其源代码。在这种情况下该怎么处理?大多数移动浏览器都可以正常加载。 - Tony Lip

-1

我通过实现以下代码成功解决了这个问题:

webView_courseLesson.settings.javaScriptEnabled = true
webView_courseLesson.settings.loadWithOverviewMode = true
webView_courseLesson.settings.useWideViewPort = true

默认情况下,Android框架关闭了JavaScript支持。但是你可以在这里查看文档http://developer.android.com/guide/practices/security.html


当您查看页面源代码时,“Error parsing a meta element's content: ';' blablabla”出现了,这是因为在meta标签中确实有一个“;”,导致Webview为空白。 - sliders_alpha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接