【问题标题】:Android URL Scheme To Open File From Browser Link?Android URL 方案从浏览器链接打开文件?
【发布时间】:2018-05-01 03:58:57
【问题描述】:

在 Android (8.0) 上,我正在尝试创建一个本地 html 文件,其中包含一些 Chrome 无法直接查看的本地文件的链接,例如 <a href="relative_path_to_file/file.docx">。在普通的网络浏览器中(即在 PC 上),我可以单击该链接,它会在其默认查看器中打开该文件。在 Android 上,如果我在 Chrome 中打开一个本地 html 文件并单击其中一个链接,它会将我定向到 content://nextapp.fx.FileProvider/path_to_file/file.docx,显示“找不到您的文件”。我确实安装了适当的应用程序来查看文件(我可以通过文件资源管理器应用程序打开它)。我想了解如何构建 URL,以便可以通过引用它们的链接访问各种类型的文档(即 docx、xlsx、pdf 等)-单击该链接应该可以打开文件,因为它从文件管理器访问文件时执行此操作。

  • 我尝试将链接重写为绝对路径,即“/storage/emulated/0/path/file.docx”。结果是一样的。
  • 我尝试将链接重写为“file:///storage/emulated/0/path/file.docx”。 Chrome 只是重定向到 about:blank。
  • 我尝试使用“HTML 查看器”而不是 Chrome 打开 html 文档。行为或多或少相同(在第一种情况下,它重定向到 about:blank,在第二种情况下,它说“没有可用于打开链接的应用程序。”)

如何构建链接以便可以单击它并在适当的查看器中打开引用的文件?

【问题讨论】:

  • 相关(并且我之前已经阅读过该答案),但我仍然无法弄清楚如何根据我的问题在 html 中构造 url(因此它提供了该文件类型的可用应用程序)。 ..
  • 你读过关于在 android in net 中交互 html 的文章吗?
  • ...嗯?你问我是否在网上搜索过解决方案?是的,显然......这就是我问的原因:P
  • 如果 Android 上的 Chrome 只显示网站而不使用本地文件,它的行为如何?

标签: android android-intent android-contentprovider android-fileprovider


【解决方案1】:

终于明白了。在其默认查看器中打开本地文件的工作链接如下所示:

"intent:///abs/path/to/file.docx#Intent;scheme=file;action=android.intent.action.VIEW;end;"

...有一个重要的警告:如果路径中有任何“点”(即我将文件放在 .hiddenFolder 中,这显然会导致 Chrome 无法找出意图链接),它就会中断。

参考:https://developer.chrome.com/multidevice/android/intents

【讨论】:

  • 为什么不在你的应用中使用 WebView?
猜你喜欢
  • 1970-01-01
  • 2014-03-12
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 2017-02-04
  • 1970-01-01
  • 2012-02-21
相关资源
最近更新 更多