I'm a newbie with AngularJS and trying to install a Chrome extension following the Webstore inline installation guide
In my .html file
<button data-ng-click="chromeExtensionInstall()" id="install-button">Add to Chrome</button>
In my .js file
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());
}
};
Both alerts are displayed and then getting this Uncaught Exception: "Chrome Web Store installations can only be initiated by a user gesture"
Any idea?
chrome.webstore.install
function accept 2 callback parameters, which means 2 pointers to function. You should not call those functions yourself, but just pass in their names, like this:Instead of this:
Do you see the difference ? If you don't, have a look on this page which explains it well (and there's also this on 7 common JavaScript mistakes)
Inline installation is composed of two parts:
A declarative tag (like
<link rel="chrome-webstore-item" href="https://chrome.google.com/webstore/detail/itemID">
) andA call to the JavaScript function chrome.webstore.install(). In addition, you must also verify an association between the site that triggers inline installation and the relevant item(s) in the Chrome Web Store.
I think you are doing only the 2nd part. This link is helpful.
http://noelarlante.com/setup-chrome-extension-for-inline-installation/