2015-09-13 2 views
6

Est-il possible de charger et d'utiliser des librairies javascript externes pour une utilisation sur les applications Apple TV TVML? Par exemple, puis-je charger la bibliothèque Firebase js et l'utiliser pour extraire des données? Par exemple, est-ce que je peux charger la bibliothèque Firebase js? Ou charger lodash pour utiliser ses fonctions?Utilisez-vous des bibliothèques javascript externes pour les applications Apple TV basées sur TVML?

+0

J'utilise avec succès require en utilisant browserfy. Allez promesses! – mcabe

+0

@ mcabe pourriez-vous éventuellement donner un exemple s'il vous plaît? –

+1

Bien sûr. J'ai mis en place un [repo] (https://github.com/mcabe/appletvmljs) qui démo mon architecture. Mais la liste de cela est que j'utilise npm pour installer des décences et juste besoin d'eux et de mes contrôleurs de vue. browserify regroupe juste mes fichiers. – mcabe

Répondre

6

Vous pouvez charger des bibliothèques JavaScript externes à l'aide de la fonction evaluateScript.

evaluateScripts([“ARRAY OF JS URLS”], function(success) { 

// do work here once the JavaScript files have been evaluated 

}] 
5

J'ai eu de la chance en utilisant webpack pour empaqueter toutes mes dépendances dans un seul fichier application.js minifié. Webpack s'occupera du regroupement des modules commonjs requis et des bibliothèques tierces et vous pouvez utiliser babel-loader pour ajouter le support es6 manquant (import/export, const/let, fonctions de flèches, etc.).

Voici mon application.js:

require('babel-polyfill'); 
import Presenter from './presenter'; 
import ResourceLoader from './resourceLoader'; 

App.onLaunch = function(options) { 
    let resourceLoader = new ResourceLoader(options.BASEURL); 

    Presenter.resourceLoader = resourceLoader; 

    let index = resourceLoader.loadResource(`${options.BASEURL}templates/Index.xml.js`, (resource) => { 
    let doc = Presenter.makeDocument(resource); 
    doc.addEventListener('select', Presenter.load.bind(Presenter)); 
    navigationDocument.pushDocument(doc); 
    }); 
} 

et mes webpack.config.js:

var webpack = require('webpack'); 

module.exports = { 
    entry: "./src/js/application.js", 
    output: { 
     path: __dirname + "/public/js", 
     filename: "application.js" 
    }, 
    module: { 
    loaders: [ 
     { 
     test: /\.jsx?$/, 
     exclude: /(node_modules|bower_components)/, 
     loader: 'babel', 
     query: { 
      cacheDirectory: true, 
      presets: ['es2015'] 
     } 
     } 
    ] 
    } 
}; 
+0

Et comment utilisez-vous safari web inspector pour déboguer avec la sortie webpack js? – zfu