gpt4 book ai didi

roku - 如何在 Roku SG 应用程序中实现深度链接?

转载 作者:行者123 更新时间:2023-12-02 09:20:08 25 4
gpt4 key购买 nike

我需要帮助理解深度链接,因为我们的 Roku 场景图应用程序被 Roku 拒绝了。

Roku 在此解释深层链接:https://sdkdocs.roku.com/display/sdkdoc/Deep+Linking ,但本文档并未详细说明有关深度链接的所有信息。例如,我们如何获取contentId和mediaType?

这是我们在启动时运行的 main() 函数:

function main(args as Dynamic) as Void
print "args" args
if (args.ContentId <> invalid) and (args.MediaType <> invalid)
if (args.mediaType = "season")
HomeScreen()
end if
end if
end function

应用程序启动后,我们打印 args,然后得到这个关联数组。但是,这不会显示任何 contentId 和 mediaType。

<Component: roAssociativeArray> =
{
instant_on_run_mode: "foreground"
lastExitOrTerminationReason: "EXIT_UNKNOWN"
source: "auto-run-dev"
splashTime: "1170"
}

使用此curl命令,应用程序成功启动并显示contentId和mediaType:

curl -d "" "http://10.1.1.114:8060/launch/dev?contentID=e59066f501310da32b54ec0b64319be0&MediaType=season"

请帮助我们并提供更好的示例来轻松理解和实现深层链接。

最佳答案

你走在正确的道路上。深层链接的目的是让用户从 Roku 搜索列表或横幅直接转到您 channel 的某一季或剧集。

文档中没有关于如何为场景图 channel 进行编程的很好的示例,因此我们也必须自己编写它。实现后,有几种方法可以对其进行测试:

  1. 使用 Eclipse 插件 -> 文件 > 导出 > BrightScript 部署。填写 DeepLinking params 字段,如下所示:contentID=1234&MediaType=episode

  2. 使用 Roku 深度链接测试器:http://devtools.web.roku.com/DeepLinkingTester/

  3. 将一些深层链接参数硬编码到您的 channel 中

以下是我们如何在 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

我希望这对您的深度链接的启动和运行有所帮助。如果我错过了什么,请告诉我。

关于roku - 如何在 Roku SG 应用程序中实现深度链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43315764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com