TVML JS 设置间隔不起作用?



我正在尝试使用 TVML 创建一个简单的幻灯片应用程序。我正在尝试在我的 JavaScript 函数中使用 setinterval 函数,但在 tvOS 模拟器上它不起作用。当我在其他处理程序(即App.onWillEnterForeground(中调用该函数时,我的屏幕会刷新,但不按时间间隔刷新。有人知道TVML的局限性吗?或者如何解决这个问题?

我没有看到屏幕更新,但在网络服务器上也没有看到任何请求。

function MyStartup(){
    var alert = createAlert("Hello", "Welcome to tvOS");
    navigationDocument.pushDocument(alert);
        var interval = setInterval(MyInterval(), 5000);
}
function MyInterval(){
    var newDoc = createAlert("Hello", "Welcome to tvOS");
    const oldMain = navigationDocument.documents[0];
    navigationDocument.replaceDocument(newDoc, oldMain);
}
var createAlert = function(title, description) {
    var d = new Date();
    var n = d.getTime();
    var alertString = `<?xml version="1.0" encoding="UTF-8" ?>
        <document>
                <mainTemplate>
                    <background>
                        <img src="http://localhost:9001/IMG_8066.jpg" />
                    </background>
                    <menuBar>
                        <nowPlayingMenuItem>
                            <title>${n}</title>
                        </nowPlayingMenuItem>
                        <section>
                            <menuItem></menuItem>
                        </section>
                    </menuBar>
                </mainTemplate>
        </document>`
    var parser = new DOMParser();
    var alertDoc = parser.parseFromString(alertString, "application/xml");
    return alertDoc
}

我认为setInterval确实有效。 但你在那里说错了。

而不是

var interval = setInterval(MyInterval(), 5000);

我认为你应该把()排除在外,把它称为

var interval = setInterval(MyInterval, 5000);

您正在尝试将引用(?或JS中调用的任何内容(传递给回调函数;但是,您将函数MyInterval(((这是空的?(的RETURN值传递到回调中,因此回调没有执行任何操作。

相关内容

  • 没有找到相关文章

最新更新