Android URL方案从浏览器链接打开文件?

时间:2018-05-01 03:58:57

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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