0

IOS の場合、これはまったく問題ありませんが、Android の場合、「アプリケーションがインストールされていません」というメッセージが表示されます。

次の単純な html コード:

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

次のように base64 html URI にエンコードします。

data:text/html;charset=utf-8;base64,PCFET0NUWVBFIEhUTUw+DQo8aHRtbCBsYW5nPSJlbi1VUyI+DQogICAgPGhlYWQ+DQogICAgICAgICAgICAgICAgPC9oZWFkPg0KICAgIDxib2R5Pg0KICAgICAgICA8cD4gaGVsbG8gPC9wPg0KICAgIDwvYm9keT4NCjwvaHRtbD4NCg==

上記の html データ URI をカット アンド ペーストして Android ブラウザ (Chrome を含めていくつか試しました) に貼り付けると、問題なく動作します...つまり、ページに hello が出力されます。

ここで、理論的には、そのデータ URI へのホームページ ショートカット アイコンを手動で作成できるはずです。次に、そのショートカット アイコンをクリックすると、ブラウザ ページが開き、切り取りと貼り付けを行うときと同じように「こんにちは」が出力されます。それをブラウザに。実際、IOS ではまさにそれが行われます。

しかし、Android では、代わりに「アプリケーションがインストールされていません」というメッセージが表示されます。どんなアプリケーション?IOS のように、データ uri として認識されず、デフォルトのブラウザーで実行されないのはなぜですか? AndroidではデータURIへのショートカットは許可されていませんか? これをデータ URI ショートカットとして認識するために、Android を何らかの方法で構成する必要がありますか? base64 でエンコードされたデータ イメージであっても、同じ問題が発生します。画像を切り取ってブラウザに貼り付けると機能しますが、手動でショートカットを作成すると機能しません。

手がかりはありますか?

4

1 に答える 1

0

WebViewClient メソッドの実装では、url が data:text/html;charset=utf-8;base64 で始まる場合、shouldOverrideUrlLoading は false を返す必要があります。

于 2016-09-06T15:42:25.897 に答える