从Web访问但是在WebView Android上从文件夹资产访问页面时没有响应的JavaScript工作

时间:2015-07-17 01:58:46

标签: javascript android webview assets

我尝试使用android webview访问此页面网址:DEMO FACE TRACKER。我使用这段代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    wv = (WebView) findViewById(R.id.webView);
    wv.setWebChromeClient(new WebChromeClient());
    wv.setWebViewClient(new WebViewClient(){
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
        }
    });
    wv.getSettings().setJavaScriptEnabled(true);
    wv.addJavascriptInterface(new WebAppInterface(this), "Android");
    wv.loadUrl("http://auduno.github.io/clmtrackr/clm_image.html");
}

和IT工作!

但是当我将所有页面(包括javascript)复制到本地,并从资源文件夹访问它时,应用程序返回NOT RESPONDING。

这是我用来访问本地资产的代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    wv = (WebView) findViewById(R.id.webView);
    wv.setWebChromeClient(new WebChromeClient());
    wv.setWebViewClient(new WebViewClient(){
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
        }
    });
    wv.getSettings().setJavaScriptEnabled(true);
    wv.addJavascriptInterface(new WebAppInterface(this), "Android");
    wv.loadUrl("file:///android_asset/index.html");
}

有关信息,除了媒体之外的所有资产(脚本,CSS等)都合并为单页,当我从浏览器(在我的计算机上)访问其工作时,但不是在android webview中。

Android上是否有特殊权限?请帮忙:)谢谢。

1 个答案:

答案 0 :(得分:0)

很可能你有路径问题。它可能不会从您认为它的位置加载。尝试添加以查看

$('#countdown')
    .text(3)
    .fadeIn(4000)
    .delay(500)
    .fadeOut(4000, function() {
        $(this)
            .text(2);
    })
    .fadeIn(4000)
    .delay(5000)
    .fadeOut(4000, function() {
        $(this)
            .text(1);
    })
    .fadeIn(4000)
    .delay(5000)
    .fadeOut(4000);

添加setAllowUniversalAccessFromFileURLs以解决从文件加载时的javascript安全问题。

        @Override
        public void onLoadResource(WebView view, String resUrl) {
            super.onLoadResource(view, resUrl);
            Log.d(LOG_TAG,"Loading " + resUrl);
        }