2014-03-03 2 views
0

www.example.com에서 호스팅되는 기존 웹 페이지에 스크립트를 추가하려고합니다. 그래서 전화 : 나는 또한 다음과 같은 설정을 변경하고웹 페이지 또는 로컬 자산 웹 페이지에서 저작물 액세스가 가능합니까?

webView.loadUrl("http://www.example.com"); 

: 내가 할

webView.loadUrl("javascript:var script1 = document.createElement('script');" + 
        "script1.type = 'text/javascript';script1.src = 'file:///android_asset/firstfunction.js';" + 
        " document.documentElement.appendChild(script1);"); 

다음 onPageStarted 이벤트에 다음

settings.setJavaScriptEnabled(true); 
    settings.setSupportZoom(true); 
    settings.setJavaScriptCanOpenWindowsAutomatically(true); 
    settings.setBuiltInZoomControls(true); 
    settings.setSupportMultipleWindows(true); 
    settings.setLoadWithOverviewMode(true); 
    settings.setUseWideViewPort(true); 
    settings.setDomStorageEnabled(true); 
    settings.setAllowContentAccess(true); 
    settings.setAllowFileAccess(true); 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
     settings.setAllowUniversalAccessFromFileURLs(true); 
     settings.setAllowFileAccessFromFileURLs(true); 

    } 

을 좀 자바 스크립트이 방법을 주입하려고 다음 오류가 발생합니다.

E/Web Console﹕ Not allowed to load local resource: file:///android_asset/firstfunction.js at null:0 

내 자신의 URL 스키마를 사용하여 동일한 파일을로드 했으므로 제대로 작동합니다. 다른 방법으로도로드 할 수 있지만 file:///android_asset/ 항목을 시험해보고 싶었습니다. 그것이 올바른 방법이 아닌가?

감사합니다.

답변

0

아니요, 원격 콘텐츠는 로컬 콘텐츠를로드 할 수 없습니다.

Java 측의 응용 프로그램에있는 로컬 JS를 String으로로드하고 해당 String을 직접 (동일한 javascript: URL 접근 방식으로) 삽입하여 동일한 효과를 얻을 수 있습니다.

+0

고마워, 내가 다른 많은 방법으로 작업하고 있다고 말했듯이, 나는 이것으로 바랄 뿐이다. 지역 콘텐츠가있는 iframe을 삽입 할 수 있고 setAllowUniversalAccessFromFileURLs을 사용하면 다른 iframe에 액세스 할 수 있지만 맞춰봐. – casolorz

관련 문제