【问题标题】:WebView not Loading Data?WebView 不加载数据?
【发布时间】: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", "");这很好:)

标签: java android webview


【解决方案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 中定义了正确的权限吗?

      【讨论】:

      • 我有互联网权限、音频状态和手机状态,我还需要另一个吗?
      猜你喜欢
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 2016-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多