Можно ли динамически анализировать SceneGraph из XML? - PullRequest
0 голосов
/ 31 октября 2018

Я хотел бы создать приложение Roku SceneGraph, построенное постепенно из компонентов XML, отправляемых с удаленного сервера. Другими словами, разрешите каналу Roku управлять SceneGraph с помощью компонентов, которые не все включены в файлы XML и brs в компоненте / папке, поставляемой вместе с каналом, а скорее загружаются из Интернета динамически.

Аналогия - веб-браузер с html в качестве языка декларативной разметки (хотя это не является моей конкретной целью).

Я видел ссылку на файлы SceneGraph, которые компилируются при запуске канала на основе того, что присутствует в component/. Кажется, что нет способа генерировать roSGNode из XML, например.

Я провел небольшое исследование, но пришел с пустыми руками. Любопытно узнать, думал ли кто-нибудь еще об этом пространстве раньше?

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Roku SceneGraph имеет ComponentLibrary (https://sdkdocs.roku.com/display/sdkdoc/ComponentLibrary)), который позволяет вам предоставлять компоненты (xml & brs), загружая их во время выполнения. Раньше существовало ограничение, что библиотека компонентов должна была быть упакована как Файл .pkg и подписан тем же ключом dev, что и приложение, выполняющее код, но начиная с версии 7.5 это ограничение было снято, пока компоненты обслуживаются по HTTPS. По ссылке выше:

"Библиотеки компонентов без подписи

Доступно с версии прошивки 7.5

Библиотеки компонентов больше не должны быть упакованы или подписаны тем же devid, что и канал, начиная с версии прошивки 7.5. Однако библиотеки без знака должны обслуживаться по протоколу HTTPS, прежде чем они будут доступны по опубликованным каналам. Смотрите дополнительные случаи ниже:

Sideloaded channels can access unsigned component libraries over HTTP or HTTPS.
Published channels can only access unsigned component libraries over HTTPS.
Published channels can access signed component libraries over HTTP if the channel and the library share the same devid."

Эту функцию можно использовать для предоставления динамических файлов xml / brs во время выполнения.

0 голосов
/ 02 ноября 2018

Короче говоря, я не думаю, что канал SceneGraph может динамически загружать определенные XML-компоненты, которые не хранятся как часть пакета канала.

Однако это не обязательно означает, что вы не можете построить динамический канал.

Возможно, вы сможете хотя бы запустить код Brightscript, отправляемый на стороне сервера, с помощью функций Run () или Eval () https://sdkdocs.roku.com/display/sdkdoc/Runtime+Functions

Многое можно сделать программно с помощью Brightscript, например, Вы можете добавить компоненты и поля для этих компонентов.

...