Добавление внутренней функции поиска в Screnegraph Brightscript Channell - PullRequest
0 голосов
/ 08 июня 2019

Мне нужно добавить функцию поиска в мой сценарий Brightscript для канала Roku. У кого-нибудь есть простой пример поиска или скрипт, который я могу использовать для добавления к «скользящей панели» скрипта канала Roku?

RoSearch устарел.

Текущая страница очень похожа на пример с раздвижной панелью.

Нужна рабочая функция поиска на моем канале Roku.

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Большинство экранов поиска в SceenGraph используют комбинацию MiniKeyboard с комбинацией любого типа списка или сетки, например MarkupGrid . Вы добавляете эти компоненты к своим панелям или групповым компонентам и сами управляете переходом.

0 голосов
/ 13 июня 2019

сначала прочитайте следующие слова: https://developer.roku.com/en-gb/docs/developer-program/discovery/search/implementing-search.md

эти коды для функции поиска.применяется статическим способом.

sub Main()


''Search Screen UI

'REM ******************************************************
'REM Main routine - example of search screen usage
'REM ******************************************************
    print "start"

    'toggle the search suggestions vs. search history behavior
    'this allow you to generate both versions of the example below

    displayHistory = false
    history = CreateObject("roArray", 1, true)

    'prepopulate the search history with sample results

    history.Push("seinfeld")
    history.Push("fraiser")
    history.Push("cheers")
    port = CreateObject("roMessagePort")
    screen = CreateObject("roSearchScreen")

    'commenting out SetBreadcrumbText() hides breadcrumb on screen

    screen.SetBreadcrumbText("", "Search Channel")
    screen.SetMessagePort(port)
    if displayHistory
       screen.SetSearchTermHeaderText("Recent Searches:")
        screen.SetSearchButtonText("search") 
        screen.SetClearButtonText("clear history")
        screen.SetClearButtonEnabled(true) 'defaults to true
        screen.SetSearchTerms(history)
    else
        screen.SetSearchTermHeaderText("Suggestions:")
        screen.SetSearchButtonText("search")
        screen.SetClearButtonEnabled(false)
    endif

    print "Doing show screen..."

    screen.Show()

    print "Waiting for a message from the screen..."

    ' search screen main event loop

    done = false
    while done = false
        msg = wait(0, screen.GetMessagePort())
        if type(msg) = "roSearchScreenEvent"
            if msg.isScreenClosed()
                print "screen closed"
                done = true
            else if msg.isCleared()
                print "search terms cleared"
                history.Clear()
            else if msg.isPartialResult()
                print "partial search: "; msg.GetMessage()
                if not displayHistory                    
                     screen.SetSearchTerms(GenerateSearchSuggestions(msg.GetMessage()))
                endif
            else if msg.isFullResult()
                print "full search: "; msg.GetMessage()
                history.Push(msg.GetMessage())
                if displayHistory
                    screen.AddSearchTerm(msg.GetMessage())
                end if

               'uncomment to exit the screen after a full search result:
                'done = true

            else
                print "Unknown event: "; msg.GetType(); " msg: "; sg.GetMessage()
            endif
        endif
    endwhile

    print "Exiting..."
End Sub 

Function GenerateSearchSuggestions(partSearchText As String) As Object
    availableContent = [
        "ch1"
        "ch2"
        "ch3"
        "ch4"
        "ch5"
        "ch6"
        "ch7"
        "ch8"
        ]
    suggestions = []
    if partSearchText <> ""
        partSearchText = LCase(partSearchText)
        for each available in availableContent
            if available.Instr(partSearchText) >= 0
                suggestions.Push(available)
            end if
        end for
    end if
    return suggestions
End Function
End sub

этот код записывается в файл main.brs

Надеюсь, этот код полезен.

...