在TVML应用上重新加载主页

时间:2017-07-18 15:54:31

标签: javascript json caching tvml

我有一个带有菜单栏和4个部分的TVML应用程序。主页(菜单栏中的第一个)是使用带有远程JSON文件的远程TVML构建的。加载JSON文件和TVML文件后,我使用Mustache渲染模板。每次用户导航到不同的页面然后使用菜单返回主页时,我们都希望加载和显示最新的TVML和JSON。然而,这从未发生过。无论我对远程文件做出什么更改,主页都保持不变。从我的调试中我看到远程文件实际上已经加载和渲染,所以我设法获得最新的模板和数据。但是,当在屏幕上显示时,以下内容不会刷新页面:

presentMenuBarItem(doc, menuItem) {  
        var feature = menuItem.parentNode.getFeature("MenuBarDocument");  
       if (feature) {  
            var currentDoc = feature.getDocument(menuItem);  

            if (!currentDoc) {  
                feature.setDocument(doc, menuItem);  
            }  
        }  
    }  

我已通过调试验证传入此函数的doc是更新版本。然而,每次都会显示旧的。

如果我重新加载应用程序,我会得到新版本,但仅限于模拟器。在实际的Apple TV中,即使我重新启动,我仍然会获得旧数据。

我还尝试通过清除堆栈并重新加载菜单和主屏幕来恢复工作,但同样,即使它在模拟器上工作,它也不在Apple TV上,数据保持不变,如同以及模板和旧图像。

App.onResume = function(options) {  
    navigationDocument.clear();  
    pushLoadingDoc();  
    resourceLoader.getNavigation();  
}  

如何让该功能渲染更新的屏幕?我们的主页tvml和json文件不断更新,我们需要向用户显示最新信息。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以像这样刷新整个页面:



refreshMainPageWith(newDoc) {
  const oldMain = navigationDocument.documents[0];
  navigationDocument.replaceDocument(newDoc, oldMain);
 }