在chrome.downloads.download

时间:2016-03-29 16:55:19

标签: google-chrome-extension download

我的Chrome扩展程序中有一个后台脚本,可从extensions目录下载名为install.bat的文件。这非常有效。但是当我想调用chrome.downloads.open(id);时,会抛出以下错误:

Unchecked runtime.lastError while running downloads.open: User gesture required

我已在["downloads", "downloads.open"]文件中请求了此过程所需的两个权限(manifest.json)。

是否有针对此问题的解决方法,甚至是简单的解决方案?

1 个答案:

答案 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);
        }
    });
});