我想构建一个Roku SceneGraph体验,它是从远程服务器上发送的XML组件逐步构建的。也就是说,使Roku通道能够使用并非全部作为XML和brs文件的一部分的组件驱动SceneGraph体验,这些组件与通道一起提供组件/文件夹下的文件,而是动态地从因特网下载。
这个类比是一个以html作为声明性标记语言的web浏览器(尽管这不是我的具体目标)。
我看到了对SceneGraph文件的引用,这些文件是根据component/下的内容在通道启动时编译的。例如,似乎没有从XML生成roSGNode的方法。
我做了一些研究,但空手而归。想知道以前有没有人想过这个地方?
发布于 2018-11-02 06:53:33
简而言之,我不认为SceneGraph通道能够动态加载未作为通道包一部分存储的XML定义组件。
但是,这并不一定意味着您无法构建一个动态通道。
您可能至少能够运行Brightscript代码,这些代码通过使用Run()或Eval()函数https://sdkdocs.roku.com/display/sdkdoc/Runtime+Functions发送到服务器端。
使用Brightscript可以通过编程方式完成许多工作,例如,您可以为这些组件添加组件和字段。
发布于 2018-11-18 05:37:27
Roku SceneGraph有一个ComponentLibrary (https://sdkdocs.roku.com/display/sdkdoc/ComponentLibrary),它允许您通过在运行时下载组件(xml & brs)来提供组件。过去有一种限制,即组件库必须打包为.pkg文件,并使用与运行代码的应用程序相同的dev键进行签名,但自v7.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文件。
https://stackoverflow.com/questions/53089438
复制相似问题