- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在 google chrome 浏览器中解析本地 HTML 文件。我读过这样做的一种方法,就是将 HTML 文件复制到 SD 卡中并加载它。我想要做的是,在 Chrome 浏览器中从 MyProject/assets 文件夹中打开 HTML 文件。
我目前正在通过 url 加载 html。在本地加载 html 将使页面加载速度更快。这就是我现在正在做的事情。
Intent i = new Intent("android.intent.action.MAIN");
i.setComponent(ComponentName.unflattenFromString("com.android.chrome/com.android.chrome.Main"));
i.addCategory("android.intent.category.LAUNCHER");
i.setData(Uri.parse("http://www.example.com"));
startActivity(i);
我想做的是这样的
Intent i = new Intent("android.intent.action.MAIN");
i.setComponent(ComponentName.unflattenFromString("com.android.chrome/com.android.chrome.Main"));
i.addCategory("android.intent.category.LAUNCHER");
i.setData(Uri.parse("MyProject/assets/htmlfile.html"));
startActivity(i);
最佳答案
首先,去掉 setComponent()
调用。尊重您的用户,并允许他们使用他们喜欢的任何浏览器。此外,Chrome 仅在一小部分 Android 设备上运行,这意味着您的应用在大多数设备上都会崩溃。
其次,摆脱 addCategory()
调用,并将您的 Intent
操作替换为 Intent.ACTION_VIEW
。
无论您从何处获取 Web 内容,都应该完成所有这些工作,因为您当前的方法是不正确且不可靠的。
关于 Assets ,其他应用无法通过Uri
直接读取您的 Assets 。您可以创建一个 ContentProvider
来为您的 Assets 提供服务,但 Chrome 不支持 content://
Uri
方案。事实上,Chrome 仅支持 http://
和 https://
Uri
值来加载任意 URL——它甚至似乎不支持很好地支持 file://
。
如果您想查看 Assets ,请在 WebView
小部件中显示它。在那里,您可以使用 file:///android_asset/
URL 来引用您自己应用的 Assets 之一。
关于javascript - 通过 Intent 在Android浏览器中加载本地html文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18430988/
我是一名优秀的程序员,十分优秀!