【问题标题】:Chrome Webstore inline installation with AngularJS使用 AngularJS 的 Chrome Webstore 内联安装
【发布时间】:2014-09-30 11:22:05
【问题描述】:

我是 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 Web Store 安装只能通过用户手势启动”

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    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

    【讨论】:

    • 谢谢!它修复了警报错误,但仍然得到相同的异常。
    • 这可能是 AngularJS 相关的问题。用普通的旧 JavaScript 代码试试这个:var button = document.getElementById('install-button'); button.addEventListener('click', chromeExtensionInstall, false);(并将你的 chromeExtensionInstall 声明到 window 范围内)
    • 我发现我调试错了,因为我在调试器中单步执行,安装调用来不及...
    • @pomeh:它不工作我刚刚在 41 版的谷歌 Chrome 稳定版中测试过,也不能在谷歌 Canary 版本 43x 中工作。请更新您的答案。它的误导性还没有起作用。
    【解决方案2】:

    内联安装由两部分组成:

    1. 声明性标签(如&lt;link rel="chrome-webstore-item" href="https://chrome.google.com/webstore/detail/itemID"&gt;)和

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

    我认为你只做第二部分。这个链接很有帮助。

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

    【讨论】:

      猜你喜欢
      • 2015-04-02
      • 2013-03-14
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      相关资源
      最近更新 更多