我的Chrome扩展程序中有一个后台脚本,可从extensions目录下载名为install.bat
的文件。这非常有效。但是当我想调用chrome.downloads.open(id);
时,会抛出以下错误:
Unchecked runtime.lastError while running downloads.open: User gesture required
我已在["downloads", "downloads.open"]
文件中请求了此过程所需的两个权限(manifest.json
)。
是否有针对此问题的解决方法,甚至是简单的解决方案?
答案 0 :(得分:1)
因此,在我阅读他的评论中提到的@abielita讨论后,我找到了解决问题的方法。通知现在再次计为User gesture
。
但是,如果在清单中请求权限downloads.open
,则无法自动打开下载,这使得此权限无用。
所以这是我的解决方案(由于下载没有自动打开,因此我不满意,但它对我有用:
var downloadID = 123;
var nIcon = chrome.extension.getURL("icons/icon_48.png");
var nTitle = "My Extension - Client Installer";
var nMessage = "Please click the button below to run the installer.";
var nButtons = [{ title: "Run the installer..." }];
var nOptions = { type: "basic", iconUrl: nIcon, priority: 2, title: nTitle, message: nMessage, buttons: nButtons };
chrome.notifications.create("hello_world", nOptions, function (nIDa) {
chrome.notifications.onButtonClicked.addListener(function (nIDb, nButtonIndex) {
if (nIDb === nIDa) {
chrome.downloads.open(downloadID);
}
});
});