Android上的WebViewloadFile无法工作,但在IOS上能正常工作。
创始人
2024-10-10 05:30:12
0

可能是由于不同操作系统之间的文件路径格式不同导致的。可以尝试使用以下代码示例来解决问题:

String url;

if (android.os.Build.VERSION.SDK_INT >= 24) { url = "file://" + context.getFilesDir().getPath() + "/xxx.html"; } else { url = "file:///android_asset/xxx.html"; }

webView.loadUrl(url);

其中,xxx.html表示文件名,可以根据实际情况进行更改。在Android 7.0及以上版本中,由于应用安装后只有/data/user/0/com.package.name,因此需要使用getFilesDir()获取路径。而在7.0以下版本中,则可以直接使用android_asset下的文件路径。

须注意,如果WebView中的页面需要加载本地资源(如图片、CSS、JS等),则需要在loadUrl()之前设置WebViewClient,并重写shouldInterceptRequest()方法,如下所示:

WebView webView = findViewById(R.id.webView); webView.setWebViewClient(new WebViewClient() { @Override public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { String url = request.getUrl().toString(); if (url.contains("file://")) { try { String path = URLDecoder.decode(url, "UTF-8").replace("file://", ""); File file = new File(path); FileInputStream inputStream = new FileInputStream(file); String mime = URLConnection.guessContentTypeFromName(path); return new WebResourceResponse(mime, "UTF-8", inputStream); } catch (Exception e) { e.printStackTrace(); } } return super.shouldInterceptRequest(view, request); } });

该代码会拦截WebView加载页面时的资源请求,如果是本地文件,则会将文件内容读取并返回给WebView。以此方式,可以保证页面中的所有资源都能够正确加载。

相关内容

热门资讯

一分钟揭秘!超级三加一辅助工具... 一分钟揭秘!超级三加一辅助工具安装,新九哥开挂,2025新版(有挂秘诀);致您一封信;亲爱超级三加一...
热点推荐!微信神兽大厅源代码,... 您好,微信神兽大厅源代码这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家...
推荐一款!西兵互娱辅助,拼十辅... 推荐一款!西兵互娱辅助,拼十辅助器,详细教程(有挂方针);详细西兵互娱辅助攻略(西兵互娱辅助软件透明...
必看攻略!枫叶辅助官网下载,新... 您好,枫叶辅助官网下载这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在...
科技通报!神兽互娱辅助免费,新... 【福星临门,好运相随】;科技通报!神兽互娱辅助免费,新蜜瓜大厅破解,微扑克教程(有挂工具);暗藏猫腻...
玩家爆料!新二号辅助软件价格,... 玩家爆料!新二号辅助软件价格,乐酷辅助,普及教程(有挂透视);是一款可以让一直输的玩家,快速成为一个...
玩家必看秘籍!新九五有脚本,道... 玩家必看秘籍!新九五有脚本,道游互娱透视辅助截图,安装教程(竟然有挂);相信小伙伴都知道这个道游互娱...
一分钟了解!新道游游戏辅助器免... 一分钟了解!新道游游戏辅助器免费版,超凡辅助下载,总结教程(有挂详情);详细新道游游戏辅助器免费版攻...
分享认知!新鸿狐脚本,辣椒互娱... 分享认知!新鸿狐脚本,辣椒互娱辅助,我来教教你(了解有挂);致您一封信;亲爱辣椒互娱辅助玩家:《辣椒...
推荐十款!518互游辅助,财神... 推荐十款!518互游辅助,财神辅助模拟器,黑科技教程(有挂透明挂);相信小伙伴都知道这个财神辅助模拟...