微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

添加后未应用可选权限

如何解决添加后未应用可选权限

我正在使用以下代码向浏览器扩展添加 nativeMessaging 权限:

// function triggered by user gesture
const promptPermissionsUpgrade = () =>
  new Promise((res) =>
    chrome.permissions.request({ permissions: ['nativeMessaging'] },res)

然后监听升级

chrome.permissions.onAdded.addListener(({permissions}) => {
  if (permissions && permissions.includes("nativeMessaging")) {
    connectNative();
  }
});

当我调用 connectNative() 时,我运行 chrome.runtime.connectNative('app_name')
这会抛出 TypeError: chrome.runtime.connectNative is not a function

我仔细检查了 manifest.json 中的密钥,它是正确的 ("optional_permissions": ["nativeMessaging"])。

MDN docs 中的示例没有说明这一点。

我错过了什么?

解决方法

应用程序在重新加载时会按预期工作,所以我意识到我可以重新加载扩展程序,瞧!它按预期工作。

!chrome.runtime.connectNative && chrome.runtime.reload();
chrome.runtime.connectNative('app_name')

-- runtime.reload docs

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。