- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要帮助理解深度链接,因为我们的 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 进行编程的很好的示例,因此我们也必须自己编写它。实现后,有几种方法可以对其进行测试:
使用 Eclipse 插件 -> 文件 > 导出 > BrightScript 部署。填写 DeepLinking params 字段,如下所示:contentID=1234&MediaType=episode
使用 Roku 深度链接测试器:http://devtools.web.roku.com/DeepLinkingTester/
将一些深层链接参数硬编码到您的 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/
我在 Roku 中创建了登录面板。在登录时,我可以单击确定按钮导航到另一个面板。 我创建了一个登录面板,其中使用两个文本框,一个用于用户名,另一个用于密码,还有两个按钮,一个用于登录,另一个用于取消。
在 Roku 中,如何从文件夹 tmp: 中的临时文件中读取和写入数据?我找不到任何与此相关的文档。我存储的数据太大而无法存储在注册表中。 最佳答案 有两个简单的函数可以从 tmp:/ 读取和写入数据
我正在开发 Roku 应用,我们需要用户的出生日期。尽量不要在解析端变得太复杂(所以宁愿不只是有一个文本框,用户可以在其中输入他们想要的任何内容)。我研究过使用 roPinEntryDialog,但不
我正在使用 BrightScript 和 SceneGraph 组件在圆形 View 中显示图像,但未找到圆形 View 选项。我想要一个像下图这样的 View : 最佳答案 您必须插入您的 Post
我需要帮助理解深度链接,因为我们的 Roku 场景图应用程序被 Roku 拒绝了。 Roku 在此解释深层链接:https://sdkdocs.roku.com/display/sdkdoc/Deep
我想知道是否可以使用终端将 channel 的 zip 文件上传到 roku 设备。看起来应该是可行的,因为有一个可用于 Eclipse 的插件,但我的目标是尽可能不使用 Eclipse。任何帮助,将
我在禁用 Roku 应用程序中的“快进”、“暂停”等远程控制按钮时遇到问题。这是一个非常简单的应用程序,只有一个主场景,它只创建一个视频节点来播放我们电视 channel 的直播流。 Roku 接受了
roUrlTransfer 对象的 AsyncPostFromString 方法生成一个超时为 30 秒的 CURL 请求。 即 port = CreateObject ("roMessagePort
我可以使用curl从我的Roku设备中的计算机获取应用程序和应用程序ID。最终,我可以使用本地计算机上的curl 来启动 channel ,例如curl -d '' ' http://192.x.x.
我可以在 Roku 设备中使用 curl 从我的计算机获取应用程序和应用程序 ID。最终,我能够使用本地计算机上的 curl 启动 channel ,例如curl -d '' ' http://192
我正在尝试使用下面的 XML Roku Channel、Scenegraph 代码填充标签列表。我收到这些错误: BRIGHTSCRIPT: ERROR: roSGScreen: creating M
我正在尝试扩展 Vector2DFieldInterpolator为了在给定三个点(起点、终点和中间点)的情况下制作平滑的弧形动画。 我已经通过设置 key 让它工作了和 keyValue常规字段 V
roku/brightscript 开发新手:是否可以将一个对象添加到全局关联数组(所有组件均可访问),该对象具有定义为属性之一的方法,并调用该方法? 主.brs: function Main()
使用场景图的明亮脚本。我想在没有字体节点的情况下更改默认字体的大小。我使用了“SmallestSystemFont”字体。它看起来比实际需要的字体大。 最佳答案 将此代码添加到附加到您的组件的脚本中
使用场景图的明亮脚本。我想在没有字体节点的情况下更改默认字体的大小。我使用了“SmallestSystemFont”字体。它看起来比实际需要的字体大。 最佳答案 将此代码添加到附加到您的组件的脚本中
因此,对于工作中的一个项目,我们的任务是为客户创建 Roku 应用程序。抱歉,如果这是一个愚蠢的问题,但我一般从未接触过 BrightScript 或 Roku 开发,而且主要是一个 React/Ja
假设我正在观察一个变量 m.someObject.observeField("content", "onContentChanged") 一段时间后我不再需要m.someObject。我需要清理和调用
当 roTextureManager 发现内存不足时,是否会自动清除或替换其缓存中的位图?我似乎找不到任何好的答案。 最佳答案 是的,据推测这就是 roTextureManager 的目的,尽管该行为
我在 Roku Brightscript 的屏幕导航中遇到了一些问题。请任何人帮助我如何在我的 Roku 项目中管理 5-6 屏幕。我想从 1 到 2 屏幕导航,也想从该屏幕返回。这是我过去 6 个月
我正在尝试截取在 lcdtv 上播放的 roku 应用程序的屏幕截图。 将您的 Roku 置于开发者模式。确认您的 Roku 的 IP 地址。 Side load your app to the Ro
我是一名优秀的程序员,十分优秀!