1

私はアンドロイドのウェブビューを持っています。たとえば、次のようなリモートページを読み込んでいますWebView.loadUrl(url)

ページが読み込まれたら、onPageFinished()以下のように JavaScript を挿入します...

WebView.loadUrl("javascript:(function() { " +
"document.getElementById('elementid').style.backgroundImage='file:///android_asset/newbackgroundimage.png';" +
"})()");

Javascript インジェクションは正常に機能しますが、問題は、ローカルの assests フォルダーから背景画像を読み込まないことです。リモート画像の URL を指定すると問題なく動作しますが、ローカルに画像があり、それをインジェクションで使用する必要があります。

誰か助けてくれませんか?

ありがとうございました!

4

3 に答える 3

0

回避策は、画像をbase64として変数にエンコードし、ローカルファイルシステムをいじらないようにすることです。 https://en.wikipedia.org/wiki/Data_URI_scheme

于 2013-07-07T00:47:35.043 に答える
0

WebView の設定はお済みですか?

WebSettings webviewsettings = WebView.getSettings();
    webviewsettings.setJavaScriptEnabled(true);
    webviewsettings.setJavaScriptCanOpenWindowsAutomatically(true);

PNGへのアクセスに問題がある場合は、次を試してください:

try 
{
    InputStream ims = getAssets().open("newbackgroundimage.png");
    Drawable d = Drawable.createFromStream(ims, null);
    mImage.setImageDrawable(d);
}
catch(IOException ex) 
{
    return;
}

ハッピーコンディング

于 2013-05-16T08:45:27.747 に答える