android - 无法将本地 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。谁能帮我吗?谢谢!
解决方案
尝试将“browserIntent.setData(pathUrl)”更改为
browserIntent.setDataAndType(pathUrl, "text/html")
明确指定它是 HTML。
推荐阅读
- c++ - 如何在文件关闭之前告诉文件刷新实际上有效?
- c# - 如何在 Unity2D 中制作跳跃动画?
- python - 是否可以为 python 创建嵌套的虚拟环境?
- javascript - Javascript vs python:具有两个递归分支的函数的不同输出
- html - 网格内卡片的对齐方式
- php - 使用空间点从 MySQL 获取半径范围内的所有用户
- google-cloud-platform - 如何仅从应用程序向 Cloud Run 发送请求?
- javascript - 如何在同一页面的一个 div 中显示多个链接
- java - 当我运行程序时,Jmenus 没有弹出
- python - Python,jsonpath_ng:异常:在令牌附近 1:4 解析错误?(?)