Javascript 我如何通过编程检查用户是否允许我的应用程序;“将文件存储在此设备上”;谷歌浏览器?
当我的应用程序在Google Chrome中打开时,Chrome会提示用户授予应用程序存储文件的权限()。如何通过编程(使用JavaScript)检查用户是否已授予此类访问权限 我提出这个问题的动机是,目前,如果用户不允许访问,并继续尝试使用该应用程序,则该应用程序将失败,而不会向用户发出任何描述性通知。事实上,应用程序只是无限期地显示应用程序的加载屏幕。因此,在我的代码中,我希望检查用户是否已授予对该存储的访问权限——如果没有,那么我将确保向用户显示一条有用的消息 我查看了以前的堆栈溢出问题,但没有发现这个问题 另外,这个Chrome提示符引用的是什么存储?临时和永久性存储(如上所述)Javascript 我如何通过编程检查用户是否允许我的应用程序;“将文件存储在此设备上”;谷歌浏览器?,javascript,file,google-chrome,local-storage,Javascript,File,Google Chrome,Local Storage,当我的应用程序在Google Chrome中打开时,Chrome会提示用户授予应用程序存储文件的权限()。如何通过编程(使用JavaScript)检查用户是否已授予此类访问权限 我提出这个问题的动机是,目前,如果用户不允许访问,并继续尝试使用该应用程序,则该应用程序将失败,而不会向用户发出任何描述性通知。事实上,应用程序只是无限期地显示应用程序的加载屏幕。因此,在我的代码中,我希望检查用户是否已授予对该存储的访问权限——如果没有,那么我将确保向用户显示一条有用的消息 我查看了以前的堆栈溢出问题,
谢谢。您可以通过检查
Chrome.permissions
来检查为Chrome设置了哪些权限
chrome.permissions.contains({
permissions: ['tabs'],
origins: ['http://www.google.com/']
}, function(result) {
if (result) {
// The extension has the permissions.
} else {
// The extension doesn't have the permissions.
}
});
还有一个用于此的ExperimentalWebAPI,您可以使用,因为它在Chrome中受支持
navigator.permissions.query(PermissionDescriptor).then(function(permissionStatus) { ... })
资料来源:
Chrome.permissions
来检查为Chrome设置了哪些权限
chrome.permissions.contains({
permissions: ['tabs'],
origins: ['http://www.google.com/']
}, function(result) {
if (result) {
// The extension has the permissions.
} else {
// The extension doesn't have the permissions.
}
});
还有一个用于此的ExperimentalWebAPI,您可以使用,因为它在Chrome中受支持
navigator.permissions.query(PermissionDescriptor).then(function(permissionStatus) { ... })
资料来源:
chrome.permissions
,但我的脚本无法使用该方法。名为chrome
的对象在全局范围内可用,但它不具有名为permissions
的方法(屏幕截图:)。我是否遗漏了一个步骤?对不起,在我之前的评论中使用的“方法”不正确。这应该是“object”。在步骤3中,他们提到了以下内容://必须从用户手势内部请求权限,就像按钮的单击处理程序一样。不过,navigator.permissions在控制台中确实对我有用,所以我建议使用它们。好的,我尝试了navigator.permissions
而不是chrome.permissions
。这就是定义。但我不知道如何检查有问题的许可。我的印象是,我看到的提示是允许访问持久性存储。但是,当我运行query()
方法并将持久存储的值传递给它时,它返回一个提示符
的状态,而不管用户是否授予访问权限。下面是一个屏幕截图,显示了在用户授予访问权限()之前提示符
的值。下面是一个屏幕截图,显示了用户授予访问权限()后的值prompt
。如果提示
更改为已授予
?非常感谢您的回复,欢迎使用堆栈溢出:-)我尝试使用chrome.permissions
,但我的脚本无法使用该方法。名为chrome
的对象在全局范围内可用,但它不具有名为permissions
的方法(屏幕截图:)。我是否遗漏了一个步骤?对不起,在我之前的评论中使用的“方法”不正确。这应该是“object”。在步骤3中,他们提到了以下内容://必须从用户手势内部请求权限,就像按钮的单击处理程序一样。不过,navigator.permissions在控制台中确实对我有用,所以我建议使用它们。好的,我尝试了navigator.permissions
而不是chrome.permissions
。这就是定义。但我不知道如何检查有问题的许可。我的印象是,我看到的提示是允许访问持久性存储。但是,当我运行query()
方法并将持久存储的值传递给它时,它返回一个提示符
的状态,而不管用户是否授予访问权限。下面是一个屏幕截图,显示了在用户授予访问权限()之前提示符
的值。下面是一个屏幕截图,显示了用户授予访问权限()后的值prompt
。该是否应提示
更改为已授予
?