TVML JS setInterval не работает? - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь создать простое приложение для показа слайдов с помощью TVML. Я пытаюсь использовать функцию setinterval в моих функциях javascript, но на симуляторе 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
}

1 Ответ

0 голосов
/ 24 июля 2018

Я думаю, что setInterval работает. но вы называете это неправильно там.

вместо

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

Я думаю, вы должны опустить () и назвать его

var interval = setInterval(MyInterval, 5000);

Вы пытаетесь передать ссылку (? Или как она называется в JS) функции обратного вызова; Однако вы передаете ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ функции MyInterval () (которая является нулевой?) В обратный вызов, поэтому обратный вызов ничего не сделал.

...