2017-02-14 7 views
0

Я загрузил веб-страницу в веб-обозреватель android, который загружает изображение с его 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 является только простой веб вид

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

Показать все усилия. поделитесь своим кодом тем, что вы сделали до сих пор. –

+0

Привет, спасибо за ответ. Причина, по которой сообщение не было опубликовано ранее, - это очень простой веб-просмотр. но я добавил код любым способом, как вы просили. любые предложения? – developer33

ответ

0

В общем, JavaScript код, работающий на веб-сайте, не могут получить доступ к ресурсам других сайтов , Но javascript с веб-сайта должен иметь доступ к ресурсам с того же сайта. Это называется same-origin policy и реализуется всеми основными браузерами.

То же самое относится и к андроид родную Webview same-origin-policy-and-android-webview

Вы можете попробовать ниже способов, если ваш файл находится в ваших местных

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

Эти методы существуют в API 16, а позднее и являются ложными по умолчанию , но, вероятно, это хорошая идея, чтобы удостовериться в значениях по умолчанию.

+0

Я пробовал эти строки, но они не решили проблему. в любом случае спасибо за ответ Punit – developer33

0

Пожалуйста, проверьте его, это

wv.setWebViewClient (новый WebViewClient());

0

У меня была такая же ошибка. Javascript попытается загрузить изображение, я бы получил ошибку выше. После изменения метода настройки параметров веб-просмотра на код ниже он начал работать:

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); 
}