首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >tvOS未加载外部TVML文件

tvOS未加载外部TVML文件
EN

Stack Overflow用户
提问于 2015-10-22 18:43:01
回答 2查看 1K关注 0票数 1

在创建新的Client-Server tvOS应用程序时,tvOS将不会从我的外部tvml文件中获取数据。这是错误:ITML <Error>: Failed to load launch URL with error: (null)

这是main.js代码

代码语言:javascript
运行
复制
function getDocument(url) {
    var templateXHR = new XMLHttpRequest();
    templateXHR.responseType = "document";
    templateXHR.addEventListener("load", function() {pushDoc(templateXHR.responseXML);}, false);
    templateXHR.open("GET", url, true);
    templateXHR.send();
    return templateXHR;
}

function pushDoc(document) {
    navigationDocument.pushDocument(document);
}

App.onLaunch = function(options) {
    var templateURL = 'niclasblog.com/appletv/main.tvml';
    getDocument(templateURL);
}

App.onExit = function() {
    console.log('App finished');
}

我还附上了main.tvml文件

代码语言:javascript
运行
复制
<document>
   <alertTemplate>
      <title>Test</title>
      <description>This is a test</description>
      <button>
         <text>Yes</text>
      </button>
      <button>
         <text>No</text>
      </button>
   </alertTemplate>
</document>

该代码直接来自Apple文档,因此我不知道它为什么不能工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-09 15:07:17

在您的App.onLaunch函数中,您可以获得BASEURL并使用它加载所有资产:

代码语言:javascript
运行
复制
App.onLaunch = function(options) {
  var BASEURL = options.BASEURL;
  // etc.
}

您还可以考虑一种加载模板的不同方法。考虑使用DOMParser来解析XML字符串。这样,您就可以编写带有“真实”内容的多行模板字符串。

代码语言:javascript
运行
复制
getDocument(options) {
let parser = new DOMParser();
let templateString = `<?xml version="1.0" encoding="UTF-8" ?>
    <document>
       <alertTemplate>
          <description>${options.translate.errorRandomErrorAlertText}</description>
          <button>
             <text>${options.translate.utilOk}/text>
          </button>
       </alertTemplate>
    </document>`;
return parser.parseFromString(templateString, "application/xml");
}

我为Apple应用程序编写了一个生成器,它使用的es6还处于开发初期,但可能会帮助您入门。

票数 1
EN

Stack Overflow用户

发布于 2015-11-02 16:14:15

试着替换这个

代码语言:javascript
运行
复制
var templateURL = 'niclasblog.com/appletv/main.tvml';

具有完全限定URI

代码语言:javascript
运行
复制
var templateURL = 'https://niclasblog.com/appletv/main.tvml';

也是

代码语言:javascript
运行
复制
templateXHR.responseType = "document"; 

并不需要,因为这似乎是默认行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33288392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档