首页 > 解决方案 > 网络权限 API

问题描述

https://developer.mozilla.org/en-US/docs/Web/API/Permissions中有一个 Browser Support 表表明某些浏览器不支持 Permissions API

另外据我了解,当用户拒绝权限请求时,无法再次请求权限

我需要创建两个函数checkPermission,当我们有权限时grantPermission,这些函数返回承诺,没有权限时返回承诺resolvedrejected

  1. 对于不支持 Permissions API 的浏览器,我该怎么办?如果我返回rejected承诺可能不需要该浏览器的许可!如果我返回resolved可能是我的应用程序运行错误!
  2. 是否有任何库包装的权限 api?

标签: javascriptgoogle-chrome

解决方案


为了检查浏览器是否支持权限:

if(!navigator.permissions){
    // Browser does not support permissions
}

此外,如果您使用 Promise,reject 和 resolve 方法有一个可选参数来传递一些数据:

function testPromise() {
  return new Promise((resolve, reject) => {
    if (!navigator.permissions) {
      reject('Unsupported Browser');
    } else {
      resolve('Supported Browser')
    }
  });
}


testPromise().then((resolved, rejected) => {
  if (rejected) {
    console.log(rejected);
    return;
  }
  console.log(resolved);
})


推荐阅读