首页 > 解决方案 > 无法将本地 html 文件加载到 Android 应用程序中的默认设备浏览器中

问题描述

我是一名 iOS 开发人员,在 Android 中分配了一项任务,所以请耐心等待,我对 Android 有点陌生。

我正在尝试加载一个本地 html 文件,该文件存储在设备下载目录中名为user_guide. 我希望 html 文件加载到设备的浏览器中(由于本文范围之外的原因而不是在 web 视图中)。我正在使用以下代码启动浏览器:

String downloadPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString();
String path = "file://" + downloadPath + "/user_guide/index.html"; // + R.raw.test;
Uri pathUrl = Uri.parse(path);
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
browserIntent.setData(pathUrl);
context.startActivity(browserIntent);

我通过设置断点获得了值,path并在我的设备上的 Chrome 中手动设置它,以验证它确实有效并加载了正确的文件。但是,当我尝试在应用程序中运行此代码时,我收到以下 toast 消息:

Cannot display PDF (index.html is of invalid format)

我对此消息感到困惑,因为我正在尝试加载 html 文件,而不是 PDF。谁能帮我吗?谢谢!

标签: androidandroid-intent

解决方案


尝试将“browserIntent.setData(pathUrl)”更改为

browserIntent.setDataAndType(pathUrl, "text/html")

明确指定它是 HTML。

我在https://stackoverflow.com/a/7009685/10300291找到了这个建议。


推荐阅读