gpt4 book ai didi

android - 如何在 Android 的 Web Intent 中启动本地 HTML 页面?

转载 作者:行者123 更新时间:2023-11-29 17:34:38 26 4
gpt4 key购买 nike

我正在尝试开始在 Android Lollipop 的浏览器中加载本地网页的 Intent :

    Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("file:///android_asset/my_page.html"));
startActivity(i);

不幸的是,我发现无法找到该页面。后来发现默认的浏览器只支持HTTP和HTTPS请求。

这是否意味着我必须在用户手机上启动本地网络服务器才能通过网络 Intent 加载 my_page.html? :/这样的本地服务器 exist at least ,但对我来说似乎太重量级了。

我无法使用 WebView ,因为 WebView 不允许用户下载 object URLs ,我的应用程序依赖于它(我尝试编写一个使用 DownloadManagerDownloadListener 但无济于事。)。

我可以简单地将静态页面托管在远程服务器上,但是我的应用程序将无法离线使用...除非我使用 App Cache .但是,使用 App Cache 并不是最佳选择,因为用户第一次使用应用程序最好是在他/她在线时……否则,第一次加载会失败。

关于如何通过网络 Intent 打开本地 Assets 页面有什么想法吗?

最佳答案

Unfortunately, I get that the page can't be found

正确。您告诉第三方应用程序从它自己的应用程序 Assets 中加载页面,但没有这样的页面。 file:///android_asset/ 仅在您的进程是解释Uri的进程时从您的应用程序加载内容,而不是当您将这样的 Uri 交给第三方应用程序时。

I later found that the default browser only supports HTTP and HTTPS requests.

Android 设备型号有数千种。所有这些都将有不止一种“默认浏览器”实现。话虽如此,虽然浏览器实现可能支持 file(对于文件系统上恰好可以被浏览器访问的实际文件)或 content(用于服务通过 ContentProvider 从您的应用中获取 Material ),并非所有内容都可以。

Does this mean I have to start a local web server on the user's phone to load my_page.html via a web intent?

如果“网络 Intent ”是指 ACTION_VIEW Intent,那么可以,如果您想要相当通用的解决方案。或者,让页面在设备外的 Web 服务器上可用。

请注意,保护本地 Web 服务器是一项棘手的工作。

I can't use a web view since web views don't let users download object URLs, which my app relies on

我不确定“下载对象 URL”是什么意思。您可以考虑问一个单独的 Stack Overflow 问题,在那里您可以更详细地讨论这个问题,除非已经有一个您确定涵盖您的场景的问题和答案。

或者,首先考虑通过 Web 内容交付此应用的 UI 是否是正确的解决方案。

关于android - 如何在 Android 的 Web Intent 中启动本地 HTML 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31136924/

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