android - Android - 从网站检查 Chrome 应用程序是否具有存储权限
问题描述
目前用户从我的网站下载一个 APK。但是,一些用户没有授予 Chrome 对存储的访问权限,因此他们收到此错误:
所以用户需要给 Chrome 存储权限。
我的问题是我是否可以在用户单击下载 APK(例如,使用 JavaScript)之前检查Chrome是否具有该权限,如果没有,则指示用户应该做什么。
- 注意 1:我知道应用程序如何自行检查它- 这不是我的问题。
- 注2:我也知道网站如何检查他是否有权限——这不是我的问题。
解决方案
我会说你不能那样做。
首先,让我们看看 Chrome android 应用程序如何检查存储是否被授予。
可以使用jadx-gui等工具查看chrome应用的代码,在里面搜索权限检查。这里我们对“WRITE_EXTERNAL_STORAGE”感兴趣,你可以看到在 DownloadController 类中检查了这个权限,阅读一下这个类是如何工作的,让我们了解当有东西想要下载任何文件并想要保存它时,首先他们检查是否授予了权限,如果没有,他们会显示一个警报对话框(您在问题中显示的那个)。
这样做的问题是,如果它们不是任何接口设置,则使用 JavaScript 时,您无法与 chrome 应用程序内部的方法进行交互。
解决方案?
您可以做的最好的事情是在用户下载应用程序之前在您的网站上放置一条消息。尝试为 Chrome android 应用程序找出解决方案并不是一个好主意,因为这对于任何其他 Web 浏览器来说都是非常困难且毫无意义的,因为它们都以不同的方式管理权限(例如存储)。