使用AngularJS进行Chrome Webstore内联安装

时间:2014-08-07 09:22:40

标签: javascript angularjs google-chrome chrome-web-store

我是AngularJS的新手并试图在Webstore inline installation guide

之后安装Chrome扩展程序

在我的.html文件中

<button data-ng-click="chromeExtensionInstall()" id="install-button">Add to Chrome</button>

在我的.js文件中

function successCallback () {
    window.alert('success');
}

function failureCallback () {
    window.alert('failure');
}

$scope.chromeExtensionInstall = function() {
    if (!chrome.app.isInstalled) {
        chrome.webstore.install('https://chrome.google.com/webstore/detail/...',
            successCallback(), failureCallback());
    }
};

显示两个警报,然后获取此未捕获的例外:“Chrome网店安装只能通过用户手势启动”

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

chrome.webstore.install函数接受2个回调参数,这意味着2个函数指针。你不应该自己调用这些函数,而只需传递它们的名字,如下所示:

chrome.webstore.install('https://chrome.google.com/webstore/detail/...',
        successCallback, failureCallback);

而不是:

chrome.webstore.install('https://chrome.google.com/webstore/detail/...',
        successCallback(), failureCallback());

你看到了区别吗?如果你不这样做,请查看this page,它解释得很好(还有this on 7 common JavaScript mistakes

答案 1 :(得分:0)

内联安装由两部分组成:

  1. 声明性标记(如<link rel="chrome-webstore-item" href="https://chrome.google.com/webstore/detail/itemID">)和

  2. 调用JavaScript函数chrome.webstore.install()。此外,您还必须验证触发内联安装的网站与Chrome网上应用店中相关项目之间的关联。

  3. 我认为你只做了第二部分。这个链接很有用。

    http://noelarlante.com/setup-chrome-extension-for-inline-installation/