你在正确的轨道上。深度链接的目的是让用户从 Roku 搜索列表或横幅直接访问您频道的季节或剧集。
文档中没有一个很好的例子来说明如何为场景图通道编程,所以我们也必须自己编写。一旦你实现了它,有几种方法可以测试它:
使用 Eclipse 插件 -> 文件 > 导出 > BrightScript 部署。像这样填写 DeepLinking params 字段: contentID=1234&MediaType=episode
使用 Roku 深度链接测试器: http: //devtools.web.roku.com/DeepLinkingTester/
将一些深层链接参数硬编码到您的频道中
以下是我们在 main.brs 中实现深度链接逻辑的方式:
sub Main(args as Dynamic)
screen = createObject("roSGScreen")
m.port = createObject("roMessagePort")
screen.setMessagePort(m.port)
m.global = screen.getGlobalNode()
'Deep Linking
'args.ContentId = "78891" 'Testing only
'args.MediaType = "episode" 'Testing only
if (args.ContentId <> invalid) and (args.MediaType <> invalid)
m.global.addField("DeepContentId", "string", true)
m.global.addField("DeepMediaType", "string", true)
m.global.DeepContentId = args.ContentId
m.global.DeepMediaType = args.MediaType
end if
scene = screen.createScene("HomeScene")
screen.show()
'...load content, other startup logic
while true
msg = wait(0, m.port)
msgType = type(msg)
if msgType = "roSGScreenEvent"
if msg.isScreenClosed() then exit while
end if
end while
if screen <> invalid then
screen.close()
screen = invalid
end if
end sub
然后在 HomeScene.brs 的主屏幕上,一旦您的内容初始化:
'Check for deep link content
if m.global.DeepContentId <> invalid then
if (m.global.DeepMediaType = "short form" or m.global.DeepMediaType = "movie" or m.global.DeepMediaType = "episode") then
'find selected content in feed
'play episode or movie content directly
else if (m.global.DeepMediaType = "season")
'find selected content in feed
'show season screen for content
else
? "Unrecognized Deep Link Media Type"
end if
'It may be necessary to remove deep link params
m.global.DeepContentId = invalid
m.global.DeepMediaType = invalid
end if
我希望这有助于您的深度链接启动和运行。如果我错过了什么,请告诉我。