If you are porting an Apps Script add-on to an Office add-in, you may find you'll be dealing with competing load methods if you are using google.load to bring in some google APIS. Office Add-ins like to have the Office framework loaded first, and google.load doesn't work inside that. It's easy enough to tackle that using Promises. Here's my Office app, loading both the Office framework and google.load. The onloadcallback for google.load resolves a Promise, which is waited for inside the Office.initialize function. That way, I know both frameworks have loaded and initialized before continuing. (function () { // each initialize fights with each other so do them separately and check theyve completed var goo = new Promise(function (resolve,reject){ google.load('visualization', '1.1', { 'packages': ['sankey'] }); google.setOnLoadCallback(function () { resolve(); }); }); Office.initialize = function (reason) { // also need the google stuff to have loaded goo.then(function() { Server.initialize(); App.initialize(); Process.initialize().then(function () { // set any listeners Home.initialize(); // chaneg the polling behavior for Office Server.pollingBehavior(); // watch for changes Client.start(); }); }) .catch(function(err) { throw err; }); }; })(); The code for this on github.
|
Services > Desktop Liberation - the definitive resource for Google Apps Script and Microsoft Office automation > Add-ons >