2017-02-14 24 views
0

ウェブページをアンドロイドウェブビューに読み込んで、URLから画像をJavaScript経由でウェブページに読み込みました。ページが読み込まれていないというエラーが表示されます。ウェブビューでウェブ画像が読み込まれない

[INFO:CONSOLE(0)] "Image from origin 'https://s-media-cache-ak0.pinimg.com' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.", source: file:///android_asset/demo3.html (0)

私のJavaコードは次のとおりです。

WebView wv = (WebView) vw.findViewById(R.id.help_webview); 
    WebSettings webSettings = wv.getSettings(); 
    webSettings.setJavaScriptEnabled(true);webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); 
    wv.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    wv.loadUrl("file:///android_asset/demo3.html"); 

そしてXMLは、単純なWeb表示一般に

<WebView 
    android:id="@+id/help_webview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
</WebView> 
+3

あなたの努力を示してください。これまでに行ったことをあなたのコードを共有してください。 –

+0

お返事ありがとうございました。以前にコードを投稿しない理由は、非常に簡単なwebviewです。あなたが尋ねたように、私はコードを何らかの方法で追加しました。任意のsuggetions? – developer33

答えて

0

で、ウェブサイトで実行されているJavaScriptコードは、他のウェブサイトからのリソースにアクセスすることはできません。しかし、ウェブサイトのjavascriptは、同じウェブサイトからのリソースにアクセスできる必要があります。これはsame-origin policyと呼ばれ、すべての主要なブラウザで実装されています。あなたのファイルは、ローカル

WebView wv = (WebView) vw.findViewById(R.id.help_webview); 
WebSettings webSettings = wv.getSettings(); 
webSettings.setAllowFileAccess(true). 
webSettings.setAllowFileAccessFromFileURLs(true) 
webSettings.setAllowUniversalAccessFromFileURLs(true). 

である場合

同じことがまた、ネイティブのWebViewにsame-origin-policy-and-android-webview

をAndroidに適用されますが、これらの方法は、API 16で、後に存在し、デフォルトではfalseです、メソッドの下に試すことができますしかし、デフォルトを確実に確認することはおそらく良い考えです。

+0

私はこれらの行を試しましたが、問題を解決しませんでした。とにかくお返事ありがとうPunit – developer33

0

、これをそれをチェックアウトしてください

wv.setWebViewClient(新WebViewClient());

0

同じエラーが発生しました。 Javascriptはイメージを読み込もうとしますが、上記のエラーが発生します。設定を変更した後、Webviewの設定を下のコードに変更した後:

private void setupSettings() { 
    WebSettings settings = memoryGameView.getSettings(); // memoryGameView is an instance of android.webkit.WebView 
    settings.setLoadWithOverviewMode(true); 
    settings.setUseWideViewPort(true); 
    settings.setJavaScriptEnabled(true); 
    settings.setAllowFileAccess(true); 
    settings.setAllowContentAccess(true); 
    settings.setAllowFileAccessFromFileURLs(true); 
    settings.setAllowUniversalAccessFromFileURLs(true); 
} 
関連する問題