如何从HTML访问Play Asset Delivery的安装时资源包内数据?
如何从index.html访问Google Play安装时资源包内的图片
安装时资源包(install-time asset packs)会被自动部署到应用的assets/asset_packs/<你的资源包名称>目录下,以下是具体访问步骤:
1. 确定资源的绝对路径
假设你的资源包名为image_pack,包内有一张background.jpg,那么它的本地访问路径为:file:///android_asset/asset_packs/image_pack/background.jpg
2. 配置WebView允许访问本地资源
在Android代码中给WebView开启必要的权限,否则无法加载本地assets资源:
WebSettings webSettings = yourWebView.getSettings(); webSettings.setAllowFileAccess(true); webSettings.setAllowFileAccessFromFileURLs(true); webSettings.setAllowUniversalAccessFromFileURLs(true);
3. 在index.html中引用图片
本地index.html(存放在应用assets中)
直接在<img>标签里填写完整路径即可:
<img src="file:///android_asset/asset_packs/image_pack/background.jpg" alt="Background">
远程index.html
如果你的WebView加载的是远程页面,需要通过Android的JS接口暴露资源路径:
- 先定义JS接口类:
class AssetPackUtils { @JavascriptInterface public String getImagePath(String packName, String imageFileName) { return "file:///android_asset/asset_packs/" + packName + "/" + imageFileName; } }
- 给WebView绑定接口:
yourWebView.addJavascriptInterface(new AssetPackUtils(), "AssetPackBridge");
- 在远程HTML的JS中调用接口获取路径:
<img id="remote-img" alt="Remote Loaded Image"> <script> document.getElementById('remote-img').src = AssetPackBridge.getImagePath('image_pack', 'background.jpg'); </script>
注意事项
- 资源包名称和文件路径严格区分大小写,拼写错误会导致加载失败
- 若使用Android 11及以上版本,确保WebView的目标SDK版本适配相关文件访问规则
内容的提问来源于stack exchange,提问作者Roy
相关产品推荐
相关产品推荐

