6

Android WebView には、データをロードするための 2 つの方法があります

public void loadData (String data, String mimeType, String encoding)

JavaScript の同一生成元ポリシーは、このメソッドを使用してロードされたページで実行されているスクリプトが、「http(s)」を含む「データ」以外のスキームを使用してロードされたコンテンツにアクセスできないことを意味することに注意してください。この制限を回避するには、適切なベース URL で loadDataWithBaseURL() を使用します。

public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl)

この方法で指定されたコンテンツは、baseUrl が「http」、「https」、「ftp」、「ftps」、「about」、または「javascript」以外のスキームを指定している場合にのみ、(「file」スキーム URL を介して) ローカル デバイス ファイルにアクセスできることに注意してください。 '。

これらの 2 つの文が何を意味し、いつ 2 つの文を選択するのかわかりません。

前もって感謝します

4

3 に答える 3

12
public void loadData (String data, String mimeType, String encoding)

ここで、HTML、mimeType、およびエンコーディングを渡します

他にどこに

public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl)

baseUrl は、アセット フォルダーへのパス、SDCard、または HTML に関連する画像やその他のメディアが存在するその他のパスなどのベース URL である可能性があります。historyUrl についてはあまり知りません。

のドキュメントによると[loadData][1]

JavaScript の同一生成元ポリシーは、このメソッドを使用してロードされたページで実行されているスクリプトが、「http(s)」を含む「データ」以外のスキームを使用してロードされたコンテンツにアクセスできないことを意味することに注意してください。この制限を回避するloadDataWithBaseURL()には、適切なベース URL を使用してください。

つまりloaddata、最初のパラメーターに存在する部分のみが含まれます。

この方法で指定されたコンテンツは、baseUrl で「http」、「https」、「ftp」、「ftps」、「about」、「javascript」以外のスキームが指定されている場合にのみ、(「file」スキーム URL を介して) ローカル デバイス ファイルにアクセスできることに注意してください。 '。

上記の簡単な意味は、baseUrl を渡すことで http などからデータにアクセスできるということです。

たとえば、ftp または他の場所から大量の画像を必要とする HTML を作成しました。ftp の URL を baseURl パラメータに渡すと、画像にアクセスできます。

于 2012-09-14T09:12:15.497 に答える
4

2 つ目は、HTML をローカルでロードし、ローカルにパッケージ化されている画像や CSS などのアセットを参照する場合に便利です。

于 2012-09-14T08:57:59.033 に答える
1

loadDataWithBaseURL() には Unicode サポートも付属しています。英語以外のコンテンツを含む Web ページを読み込もうとしている場合に役立つ場合があります。

于 2016-03-03T10:41:45.350 に答える