首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >触发Roku回击

触发Roku回击
EN

Stack Overflow用户
提问于 2018-06-01 15:23:52
回答 1查看 527关注 0票数 1

有没有办法通过BrightScript触发roku的回动作?

我想从导航堆栈中弹出当前屏幕,并显示前一个屏幕。

我需要这个有几个原因:

1.)屏幕上将出现一个后退按钮,用户可以导航到该按钮并按下。按此按钮应触发类似于遥控器上的后退按钮的回退动作。(想想浏览器window.history.back())

2.)当某些回调事件被调用时,我想要触发这个回退操作。

我目前使用以下任务导航:

代码语言:javascript
复制
function init()
    ? "[NavigationTask] init()"
    m.top.functionName = "gotoScreen"
end function

sub gotoScreen()
    if m.top.sceneName <> invalid then
        handleNav(m.top.sceneName)
    else
        print "[NavigationTask] sceneName not specified"
    end if
end sub

sub handleNav(sceneName as String)
    print "[NavigationTask] handleNav"

    screen = CreateObject("roSGScreen")
    m.port = createObject("roMessagePort")
    screen.SetMessagePort(m.port)

    if screen <> invalid
        scene = screen.CreateScene(sceneName)
        screen.Show()

        while(true)
            msg = wait(0, m.port)
            msgType = type(msg)
            print "[NavigationTask] msg : "; msgType" scene="sceneName 
            if msgType = "roSGScreenEvent"
                if msg.isScreenClosed() then return
            end if
        end while
    else 
        print "[NavigationTask] Invalid roSGScreen"
    end if   
end sub

任务的调用如下:

代码语言:javascript
复制
   m.NavigationTask   = createObject("roSGNode","NavigationTask")
   m.NavigationTask.sceneName = videoScreen()
   m.NavigationTask.control  ="RUN"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 16:49:34

我不会因为螺纹交会而重新处理任务线程中的导航,而且您也可以有一个roSGScreen和一个场景,并让组/矩形充当应用程序的“屏幕”。这将是一个更有表现力的解决方案。

但是无论如何,回到您的问题上,您可以使用外部控制API以编程方式模拟回压。

代码语言:javascript
复制
ecpRequest = CreateObject("roUrlTransfer")
url = "http://" + roku_ip + ":8060/keypress/back"
ecpRequest.setURL(url)
ecpRequest.postFromString("")

您可以从roDeviceInfo获得roku地址。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50646661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档