Sembra che tu stia descrivendo uno scenario "light-up". Per questi tipi di casi d'uso, non è tanto la versione effettiva di cui si cura (vuoi veramente mantenere un elenco interno di tutte le versioni minime) del desktop Excel, e presto Excel Online e iOS, non è tanto la versione ? e tieni aggiornato?), ma preferisci controllare la capacità dello che qualcosa sia presente. E quindi offrire un'esperienza differenziata a seconda se la capacità è lì o meno.
A tal fine, vorrei raccomandare un'API nuova di zecca che abbiamo appena rilasciato insieme a queste API (e che è backportata a tutte le versioni precedenti, quindi basta che tu stia usando l'ultimo Office.js da il CDN, dovresti essere bravo a farlo). Questa API ti offre la possibilità di verificare, in fase di esecuzione, se è supportato un particolare set di API. Sembra:
if (Office.context.requirements.isSetSupported('ExcelApi', 1.1)) {
// Do something that is only available via the new APIs
}
La documentazione ufficiale è disponibile a breve e il nostro campione inizierà presto a utilizzarlo. Resta sintonizzato ...
L'attuale serie di API Excel appena rilasciate è tutto in "ExcelApi" versione 1.1.Quando aggiungiamo nuove API, le aggiungeremo a un set 1.2, a un set 1.3 e così via (e contrassegniamo nella documentazione e in IntelliSense la versione di ciascuna API in cui è disponibile). Ha senso?
Per completezza, un paio di altre cose da notare su Office.js delle versioni: 1) Per assicurarsi di avere le ultime API, correzioni di bug, ecc, è necessario utilizzare sempre la posizione CDN , che viene aggiornato sul posto mentre implementiamo nuove funzionalità. Quella posizione è https://appsforoffice.microsoft.com/lib/1/hosted/office.js. https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js funziona anche, con la versione "1" che è solo un alias per "1.1" al momento ... ma a lungo termine, è probabilmente meglio passare all'URL "1".
2) Corollario a quanto sopra: si dovrebbe sempre utilizzare l'ultima posizione CDN anche per gli host precedenti. In questo modo, entrambi riceverete "light-up" per nuove funzionalità e correzioni di bug (anche per versioni di host precedenti). In sostanza, puoi sempre utilizzare l'ultimo CDN e fare affidamento sul caricamento dinamico dello script Office.js per caricare i file specifici dell'host necessari.
3) È possibile utilizzare la nuova API isSetSupported per entrambi i nuovi set di API "ExcelApi" e "WordApi" e per i set esistenti (ad es. "MatrixBinding").
4) Per le API che fanno parte di "Office". spazio dei nomi, è anche possibile utilizzare la "programmazione difensiva" per eseguire i controlli di runtime per le singole funzioni (ad esempio, controllare che siano supportati Office.context.document.bindings && Office.context.document.bindings.addFromSelectionAsync)
. Tuttavia, è possibile vedere che questo può essere abbastanza dettagliato, quindi il controllo di un set dovrebbe essere molto più semplice. questo NON funzionerà per le API sotto lo spazio dei nomi "Excel" o "Word", quindi è un motivo in più per utilizzare l'API Office.context.requirements.isSetSupported
.
5) Infine: per le app che hanno senso funzionare solo se un determinato set di requisiti è presente, è possibile specify the API set in the app's manifest. Detto questo, un controllo manifesto riguarda specificando il minimo assoluto , senza il quale l'app semplicemente non verrà eseguita (o mostrerà anche come disponibile nella finestra di dialogo Inserisci). Un controllo di runtime, nel frattempo, consente di controllare come si desidera reagire se una determinata API non è supportata (offrendo l'opzione di funzionalità "lightup" o un'esperienza declassata). Pertanto, in generale, consiglio di utilizzare il requisito manifest minimo che abbia senso per la tua app, quindi di eseguire controlli di runtime per le nuove funzionalità.
Spero che questo aiuti,
~ Michael Zlatkovsky
Developer sul team di Office estensibilità, MSFT
Aremes, per quanto riguarda la prima differenza che fai notare (formattazione in Excel online ed Excel 2013) : se puoi fornire ulteriori informazioni, sarei felice di dargli un'occhiata. Una cosa è avere alcune funzionalità supportate solo su alcune piattaforme/versioni (per le quali è possibile utilizzare il rilevamento dei requisiti come da mia risposta in basso), ma è un'altra cosa avere un comportamento incoerente. Quindi, se credi in un esempio, ti prego di farmelo sapere e presenterò un bug (lavoro con il team di Estensibilità di Office). –
grazie, ne ho un po ', lo scriverò e te lo darò entro la fine della settimana :) – aremes