是否可以加载和使用外部JavaScript库以在TVML Apple TV应用程序上使用?
例如,我可以加载Firebase js库并使用它来获取数据吗?或者加载lodash以使用它的功能?
答案 0 :(得分:7)
您可以使用evaluateScript函数加载外部JavaScript库。
evaluateScripts([“ARRAY OF JS URLS”], function(success) {
// do work here once the JavaScript files have been evaluated
})
答案 1 :(得分: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);
});
}
和我的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']
}
}
]
}
};
答案 2 :(得分:0)
https://github.com/emadalam/tvml-catalog-using-atvjs
请参阅使用atvjs框架重写的原始示例代码的此端口,该框架使用外部库,如Handlebars,lodash,atvjs等。