Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何通过编程检查用户是否允许我的应用程序;“将文件存储在此设备上”;谷歌浏览器?_Javascript_File_Google Chrome_Local Storage - Fatal编程技术网

Javascript 我如何通过编程检查用户是否允许我的应用程序;“将文件存储在此设备上”;谷歌浏览器?

Javascript 我如何通过编程检查用户是否允许我的应用程序;“将文件存储在此设备上”;谷歌浏览器?,javascript,file,google-chrome,local-storage,Javascript,File,Google Chrome,Local Storage,当我的应用程序在Google Chrome中打开时,Chrome会提示用户授予应用程序存储文件的权限()。如何通过编程(使用JavaScript)检查用户是否已授予此类访问权限 我提出这个问题的动机是,目前,如果用户不允许访问,并继续尝试使用该应用程序,则该应用程序将失败,而不会向用户发出任何描述性通知。事实上,应用程序只是无限期地显示应用程序的加载屏幕。因此,在我的代码中,我希望检查用户是否已授予对该存储的访问权限——如果没有,那么我将确保向用户显示一条有用的消息 我查看了以前的堆栈溢出问题,

当我的应用程序在Google Chrome中打开时,Chrome会提示用户授予应用程序存储文件的权限()。如何通过编程(使用JavaScript)检查用户是否已授予此类访问权限

我提出这个问题的动机是,目前,如果用户不允许访问,并继续尝试使用该应用程序,则该应用程序将失败,而不会向用户发出任何描述性通知。事实上,应用程序只是无限期地显示应用程序的加载屏幕。因此,在我的代码中,我希望检查用户是否已授予对该存储的访问权限——如果没有,那么我将确保向用户显示一条有用的消息

我查看了以前的堆栈溢出问题,但没有发现这个问题

另外,这个Chrome提示符引用的是什么存储?临时和永久性存储(如上所述)


谢谢。

您可以通过检查
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) { ... })
资料来源:


非常感谢您的回复,欢迎使用Stack Overflow:-)我尝试使用
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
。该
是否应提示
更改为
已授予