如何在我的应用程序之外的网络浏览器 运行 中打开和查看 html 本地存储在我的 Android 设备上的文件,最好使用 Intent ACTION_VIEW

How can I open and view html files stored locally on my Android device in a web browser running outside of my app, preferably using Intent ACTION_VIEW

我想在我的电脑上写入多个 html 文件。然后我希望将这些文件捆绑到我的可安装应用程序中,因此当应用程序安装在智能 phone 上时,它已经在本地存储了这些文件。 然后我想在我现有的应用程序中使用一个按钮来 select 这些文件中的 1 个,然后打开这个文件以便在单独的网络浏览器(在我的应用程序之外)中查看。 我试过使用下面这样的代码,它适用于来自外部站点的 运行 html 页面:

val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"))

开始活动(浏览器意图)

但是,如果我尝试从 Android 上的文件发布,例如 Uri.parse("file://android_assets/test.htm"),那么我的应用程序会崩溃。 谁能建议我如何在新浏览器中从我的 Android 应用程序发布 html 文件,我更愿意使用 Intent ACTION_VIEW 之类的东西? 我使用 webview 进行了此操作,但在应用程序中加载 html 页面确实会降低用户体验。

使用 FileProvider 为您的 html 文件创建一个漂亮的内容方案 uri。

或者,如果您在设计时将 html 文件放置在项目资产文件夹中,那么当您的应用程序运行时,您的 html 文件位于资产资源中,您可以将其显示在 WebView 组件中。 Webview load html from assets directory

如果您不想在您的应用中使用 WebView,请使用您自己的 FileProvider/ContentProvider 从资产中提供文件。

您还可以将文件从资产资源复制到本地存储,然后使用 FileProvider 和 ACTION_VIEW 来为您的 html。