WebView 不加载数据?
Posted
技术标签:
【中文标题】WebView 不加载数据?【英文标题】:WebView not Loading Data? 【发布时间】:2010-12-31 15:07:38 【问题描述】:我正在尝试使用 WebView,但 webview 声称该页面:
"data:text/html;utf-8,[我要显示的 html]"
不可用。
我觉得奇怪的是它似乎将 html 数据放入 url,当我只想让它显示时。
这是我现在的 webview 代码:
Bundle data = getIntent().getExtras();
WebView webview = new WebView(this);
setContentView(webview);
webview.loadData(data.getString("DEFAULTTEXT"), "text/html", "utf-8");
其中 HTML 已在 Bundle 中以字符串形式传递,其中 标识符:默认文本。我已经测试了这个类并且通过了 HTML 很好,只是显示不正确。
它在我尝试过的一些网页上运行良好,但在其他网页上运行良好。我将尝试发布一个有效和一个无效的代码。
【问题讨论】:
我也有这个问题。你有没有想过解决方案?我正在读入一个 java 字符串,但它不显示。但是,当我复制并粘贴到使用 file:///assets/my.html url 打开的 .html 文件中时,它可以正常打开。所以我知道它可以渲染 html,但是当它在我生成的字符串中时它不喜欢它。 同样的问题,有些页面可以工作,有些不能... 其实 loadDataWithBaseURL 解决了这个问题。 哦,我还没有解决这个问题。我会试试的。 也为我工作,加载数据出错,现在使用类似这样的东西:webView.loadDataWithBaseURL("",resultData.getString(MarketRules.MARKET_RULES), "text/html", "utf- 8", "");这很好:) 【参考方案1】:Huuu....所以今天早上我打开了我的电脑,它运行良好。我仍然不知道问题是什么。 :/
编辑:没关系。它适用于我尝试显示的部分页面,但不是所有页面。
Edit2:将其换成 loadDataWithBaseURL 效果很好。
【讨论】:
我的工作全面,然后有一天停止工作。 loadDataWithBaseURL 现在可以工作,希望它不会那么神秘【参考方案2】:如上所述,当您的 HTML 中有 '%'、'\'、'#' 之类的字符时,需要对其进行转义,而 loadData 似乎不会自动执行此操作。
loadDataWithBaseURL 而不是 loadData 确实逃脱并且似乎解决了这个问题。只需对 baseUrl 和 historyUrl 使用 null。所以问题中的示例代码改为:
Bundle data = getIntent().getExtras();
WebView webview = new WebView(this);
setContentView(webview);
webview.loadDataWithBaseURL(null,data.getString("DEFAULTTEXT"), "text/html", "utf-8",null);
【讨论】:
【参考方案3】:我相信 loadData* 的这种零星行为是因为您尝试加载的页面内容是什么。如果它是简单的html,它没有问题。但是,如果它具有诸如 css 之类的组件或其他需要外部信息的功能,它就会退出。 我的经验!
【讨论】:
【参考方案4】:您确定在 manifest.xml 中定义了正确的权限吗?
【讨论】:
我有互联网权限、音频状态和手机状态,我还需要另一个吗?以上是关于WebView 不加载数据?的主要内容,如果未能解决你的问题,请参考以下文章
当我将 html 数据从字符串加载到 webview 时,Jquery 功能不起作用
electron怎么获取到webview里的元素,webview为加载的网站
android中webview 怎么实现网页加载时显示加载进度?
android中webview 怎么实现网页加载时显示加载进度