Android - 从网站检查 Chrome 应用程序是否具有存储权限

Android - check from web site if Chrome app has storage permission

目前有用户从我的网站下载 APK。但是,一些用户没有向存储授予 Chrome 的访问权限,因此他们收到此错误:

所以用户需要给Chrome存储权限。

我的问题是我是否可以在用户点击下载 APK 之前检查(例如,使用 JavaScript),如果 Chrome 有许可,如果没有则指示用户他应该做什么。

我会说你不能那样做。

首先,让我们看看 Chrome android 应用程序如何检查存储是否被授予。

可以使用jadx-gui等工具查看chrome应用程序的代码,在里面搜索权限检查。这里我们对“WRITE_EXTERNAL_STORAGE”感兴趣,你可以看到这个权限是在 DownloadController class 内部检查的,阅读一下这个 class 是如何工作的让我们明白当某些东西想要下载任何文件,并想要保存它,首先他们会检查是否授予了权限,如果没有,他们会显示一个警告对话框(您在问题中显示的那个)。

这个问题是,如果 JavaScript 没有任何接口设置,您将无法与 chrome 应用程序内部的方法进行交互。

解决方案?

您能做的最好的事情就是在用户下载应用程序之前在您的网站上放置一条消息。 试图找出 Chrome android 应用程序的解决方案不是一个好主意,因为这对任何其他 Web 浏览器来说都非常困难且毫无意义,因为它们都以不同的方式管理权限(例如存储)方式。