2017-02-14 1 views
0

자바 스크립트를 통해 웹 페이지 URL에 이미지를로드하는 안드로이드 webview에 웹 페이지를로드했습니다. 그러면 페이지가로드되지 않는 오류가 발생합니다. 아무도 도와 줄 수 있습니까?웹보기가 웹 이미지를로드하지 않습니다.

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

안녕하세요, Andy 님의 답변에 감사드립니다. 이전에 코드를 게시하지 않는 이유는 매우 간단한 웹 뷰입니다. 그러나 당신이 물었을 때 어떤 식 으로든 코드를 추가했습니다. 어떤 동기 부여? – developer33

답변

0

이 웹 사이트에서 실행되는 자바 스크립트 코드가 다른 웹 사이트에서 리소스에 액세스 할 수 없습니다 단순한 웹이다 :

[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)

내 자바 코드는 . 하지만 웹 사이트의 자바 스크립트는 동일한 웹 사이트의 리소스에 액세스 할 수 있어야합니다. 이것은 same-origin policy라고하며 모든 주요 브라우저에서 구현됩니다.

같은 일이 네이티브 웹보기를 안드로이드에 적용 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가 이미지를로드하려고하면 위의 오류가 발생합니다. 설정을 변경 한 후 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); 
} 
관련 문제