将外部JavaScript库用于基于TVML的Apple TV应用程序?

Ros*_*ter 6 javascript apple-tv tvos tvml

是否可以加载和使用外部JavaScript库以用于TVML Apple TV应用程序?

例如,我可以加载Firebase js库并使用它来获取数据吗?或者加载lodash来使用它的功能?

小智 7

您可以使用evaluateScript函数加载外部JavaScript库.

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

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

})
Run Code Online (Sandbox Code Playgroud)


Cez*_*ski 6

我很幸运使用webpack将所有依赖项打包成一个缩小的application.js文件.Webpack将处理捆绑所需的commonjs模块和第三方库,您可以使用babel-loader添加缺少的es6支持(导入/导出,const/let,箭头函数等).

这是我的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);
  });
}
Run Code Online (Sandbox Code Playgroud)

和我的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']
        }
      }
    ]
  }
};
Run Code Online (Sandbox Code Playgroud)