base64 编码的 html 可在浏览器中使用,但不适用于 Android 上的快捷方式

问题描述 投票:0回答:1

对于 IOS,这绝对没问题,但对于 Android,我收到“应用程序未安装”

以下简单的html代码:

<!DOCTYPE HTML>
<html lang="en-US">
    <head>
    </head>
    <body>
        <p> hello < p>
    </body>
</html>

编码为 base64 html URI:

数据:文本/html;字符集=utf-8;base64,PCFET0NUWVBFIEhUTUw+DQo8aHRtbCBsYW5nPSJlbi1VUyI+DQogICAgPGhlYWQ+DQogICAgICAgICAgICAgICAgPC9oZWFkPg0KICAgIDxib2R5Pg0KICAgICAgICA8cD4gaGVsbG8g PC9wPg0KICAgIDwvYm9keT4NCjwvaHRtbD4NCg==

如果您将上面的 html 数据 URI 剪切并粘贴到 Android 浏览器中(我尝试了几种,但包括 Chrome),它工作得很好......即它将 hello 打印到页面上。

现在,理论上您应该能够手动创建该数据 uri 的主页快捷方式图标,然后您应该能够单击该快捷方式图标,它应该打开一个浏览器页面并打印“hello”,就像您剪切和粘贴时一样将其粘贴到浏览器中。事实上,在 IOS 中这正是它的作用。

但在 Android 中,我却得到“应用程序未安装”。什么应用?为什么它不像在 IOS 中那样被识别为数据 uri 并在默认浏览器中执行它? Android 中不允许数据 URI 的快捷方式吗?我真的需要以某种方式配置 Android 来将其识别为数据 URI 快捷方式吗?即使它是 base64 编码的数据图像,也会出现同样的问题。当我将图像剪切/粘贴到浏览器中时图像可以工作,但如果我手动创建快捷方式则不行。

有什么线索吗?

android html base64 data-uri data-uri-scheme
1个回答
0
投票

在 WebViewClient 方法的实现中,如果 url 以 data:text/html;charset=utf-8;base64 开头,则 shouldOverrideUrlLoading 必须返回 false

© www.soinside.com 2019 - 2024. All rights reserved.