我们的开发人员不久前向AMO提交了一份WebExtension插件,该插件已公开发布。我可以使用Firefox Add-ons page上的搜索找到它。我试图在我的移动Firefox浏览器上安装该插件。我在附加组件商店搜索,但它不可用。似乎Firefox for Android转到Android Add-ons page。我从桌面搜索了相同的Android加载项页面,但找不到扩展名。有人告诉我,这个附加组件是上次提交给所有平台"选择的选项。我找不到任何特定于向Android附加组件页面提交加载项的文档。他们不一样吗?在提交附加组件时是否会出错?或者,是因为清单文件?
以下是 manifest.json 文件中的部分:
{
"manifest_version": 2,
"name": "Extension Name",
"short_name": "EXTNSHORTN",
"version": "0.0.1",
"description": "some description",
"icons": {
"19": "images/icon19.png",
"38": "images/icon38.png",
"128": "images/icon.png"
},
"applications": {
"gecko": {
"id": "abc@def.com",
"strict_min_version": "48.0"
}
},
"background": {
"scripts": [
"a.js", "b.js", "c.js", "d.js", "e.js", "f.js", "g.js", "h.js",
"background.js"
]
},
"permissions": [
"alarms",
"idle",
"tabs",
"activeTab",
"<all_urls>",
"notifications"
],
"browser_action": {
"browser_style": false,
"default_icon": "images/icon.png",
"default_title": "same title",
"default_popup": "popup1.html"
},
"content_scripts": [
{
"matches": ["https://www.exmple.com/*"],
"js": ["p.js"]
}
],
"web_accessible_resources": [
"web_accessible/*"
]
}
扩展名是Engrip Extension。我们如何解决这个问题,以便桌面版Firefox和Android版Firefox都可以使用相同的扩展名?
答案 0 :(得分:0)
Firefox for Android 对您的 manifest.json
有一个附加要求:必须在 gecko
according to Mozilla's Extension Workshop 下设置带有 id
的 browser_specific_settings
部分(“何时做您需要一个附加 ID?...使用 Firefox for Android。”)这也在他们的 Android checklist 中提到。在 Firefox 48 之前的桌面上曾经需要额外的设置,在 Android 上仍然需要,并在 Chrome 上创建一个警告,所以如果你也发布到 Chrome,你可能想要构建一个没有它的不同版本。有点无益,没有这个 id
AMO 仍然让你声明你的扩展是 Android 兼容的,但没有列出它,也没有指出它列出失败的原因是你的清单缺少浏览器特定的 id .
由于您已经发布了没有 ID 的扩展程序,因此系统会自动为您提供 ID,您最好不要更改它,否则您将发布与第一个不同的新扩展程序。所以你需要找出你得到的ID。您可以通过从 addons.mozilla.org 将您的扩展安装到桌面 Firefox 来完成此操作,转到 about:debugging
,点击“This Firefox”,然后在“Extensions”下查找您的扩展的“Extension ID”。这就是您需要添加引号并将其放入清单的正确部分以使其适用于 Android 的内容:
"browser_specific_settings": {
"gecko": {
"id": "{long-uuid-goes-here}"
}
}