gpt4 book ai didi

javascript - 通过 Intent 在Android浏览器中加载本地html文件

转载 作者:行者123 更新时间:2023-11-30 03:24:44 24 4
gpt4 key购买 nike

我需要在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com