如何设置和访问package.json文件中定义的firefox插件首选项。

如何设置和访问package.json文件中定义的firefox插件首选项。,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,我的package.json文件中有以下首选项 "preferences": [ { "name": "api_url", "title": "Install url", "type": "string", "value": "https://google.com" }, { "name": "api_username",

我的package.json文件中有以下首选项

"preferences": [
        {
            "name": "api_url", 
            "title": "Install url", 
            "type": "string", 
            "value": "https://google.com"
        }, 
        {
            "name": "api_username", 
            "title": "Install username", 
            "type": "string"
        }, 
        {
            "name": "api_key", 
            "title": "API key", 
            "type": "string"
        }
]
我的main.js文件中有以下代码

const {Cc,Ci} = require('chrome');

var prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService);
    prefs = prefs.getBranch("extensions.myExtension.");

console.log(prefs.getCharPref("api_url"));
当我执行代码时,会显示以下错误

Message: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPrefBranch.getCharPref]"  nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)"  location: "JS frame :: resource://gre/modules/XPIProvider.jsm -> jar:file:///tmp/tmpJvzkDz.mozrunner/extensions/jid1-zsQS9x5zIenFuw@jetpack.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://jid1-zsqs9x5zienfuw-at-jetpack/myExtension/lib/main.js :: exports.main/<.onLoad/</<.success :: line 89"  data: no]
消息:[异常…”组件返回故障代码:0x8000ffff(NS\U错误\U意外)[nsIPrefBranch.getCharPref]“nsresult:“0x8000ffff(NS\U错误\U意外)”位置:“JS框架::resource://gre/modules/XPIProvider.jsm ->罐子:file:///tmp/tmpJvzkDz.mozrunner/extensions/jid1-zsQS9x5zIenFuw@jetpack.xpi!/bootstrap.js->resource://gre/modules/commonjs/toolkit/loader.js -> resource://jid1-zsqs9x5zienfuw-at-jetpack/myExtension/lib/main.js ::exports.main/您的错误在这一行:
prefs=prefs.getBranch(“extensions.myExtension”);

您必须在文件中查找并找到加载项的id。它应该以
jid
然后像这样:

prefs=prefs.getBranch(“extensions.jid1-lwNbwJJiiMXM4A@jetpack.”;

但如果您使用的是插件sdk,请使用简单的pref服务:


require('sdk/simple-prefs')。prefs['api\u-url']

我决定使用simple-prefs-api。如果我不要求自己以外的任何人的首选项,就没有理由使用组件类。