另一个 file:///android_asset 问题

问题描述

阅读所有帖子,在第 3 天尝试从本地资产应用 css。

 WebView wv = new WebView(getApplicationContext());
                            //wv.getSettings().setUseWideViewPort(false);

                            wv.setInitialScale(100);
                            wv.getSettings().setLoadWithOverviewMode(true);
                            wv.getSettings().setUseWideViewPort(true);
                            wv.getSettings().setMinimumFontSize(30);
                            wv.getSettings().setJavaScriptEnabled(true);
                            wv.getSettings().setAllowFileAccess(true);
                            wv.getSettings().setDomStorageEnabled(true);
                            wv.getSettings().setAllowFileAccessFromFileURLs(true);
                            wv.getSettings().setAllowUniversalAccessFromFileURLs(true);
                            wv.setWebContentsDebuggingEnabled(true);


                            wv.getSettings().setMixedContentMode(0);
                            wv.getSettings().setAppCacheEnabled(false);

                           //wv.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
                           // wv.setScrollbarFadingEnabled(true);

                            String mimeType = "text/html";
                            String encoding = "utf-8";
                            String htmlData = "<html><head><link href=\"myco.css\" rel=\"stylesheet\" type=\"text/css\"/></head><body>" + jResponse.getString("htmlout")+"</body></html>";


                            //wv.loadData(htmlData,mimeType,encoding);
                            wv.loadDataWithBaseURL("file:///android_asset/",htmlData,encoding,null);

/data/data/com.myco/files 中没有资产,如果我注释“loadDataWithBaseURL”并放置,我的资产 css 文件存在于我的应用程序 src/main/assets 中

     wv.loadData(htmlData,encoding);

然后我的表加载收到的动态内容,没有 css 样式 - 包括使用 base 加载和使用 css 的调用,但 webview 不显示。

“data/data/com.myapp/files 文件夹是空的 - 我试过手动将 css 文件复制到 files 文件夹中,没有任何区别......ONNNNNNN 发生了什么?

编辑:
使用 loadData 并在我的 css src 中指定“file:///android_asset/myco.css”,我现在看到此消息(使用 loadDataWithBaseURL 时不存在)

I/chromium: [INFO:CONSOLE(1)] "Not allowed to load local resource: file:///android_asset/myco.css",

无论我是否手动将css文件复制到文件中,结果都是一样的

清单包含:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我还有一个函数,它在使用 webview 的活动中创建时请求用户的读取权限:

   private void checkExternalStoragePermission() {
    int permissionCheck = ContextCompat.checkSelfPermission(
            this,Manifest.permission.READ_EXTERNAL_STORAGE);
    if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
        Log.i("Message","PERMISSION NOT SET.");
        ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE},225);
    } else {
        Log.i("Message","Permission OK!");
    }
}

这有效:

String htmlData = "<html><head><link href=\"https://thesitedomain.org/myco_app.css\" rel=\"stylesheet\" type=\"text/css\"/></head><body>" + jResponse.getString("htmlout")+"</body></html>";

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...