Roku Как получить стандартный ввод в Main.brs

Я пишу приложение Roku, и мне нужно прочитать строку со стандартного ввода. Я знаю, что для печати на стандартный вывод я могу использовать функцию print, но мне нужно дать пользователю запускающему скрипт возможность вставлять новые параметры во время выполнения, например (псевдокод):

print "Enter server IP: "
string ip = getline();
print "Server IP " + ip

Есть ли способ сделать это?


person Nick    schedule 08.09.2017    source источник
comment
Что вы подразумеваете под чтением из стандартного ввода? Каналы не запускаются из командной строки.   -  person Jess Bowers    schedule 13.02.2018


Ответы (2)


Вам нужно будет добавить компонент Keyboad*** в ваш файл Scene.xml:

<Keyboard
    id = "keyboard" 
/>

После этого добавьте компонент Button в Scene.xml, объявите его в Scene.brs - функция init() и установите поле наблюдателя на "buttonSelected". Также объявите клавиатуру и установите на нее фокус:

в этом() :

m.keyboard = m.top.findNode("keyboard")
m.keyboard.setFocus(true)
m.button = m.top.findNode("button")
m.button.observeField("buttonSelected","onButtonSelected")

Затем создайте Sub, чтобы получить пользовательский ввод с клавиатуры при нажатии кнопки:

Sub onButtonSelected()
    print m.keyboard.textEditBox.text
End Sub

*** Обратите внимание, что компонент клавиатуры имеет встроенный TextEditBox, поэтому вам не нужно добавлять его вручную в файл Scene.xml.

person U.Mitic    schedule 08.09.2017

В разработке Roku нет концепции «стандартного ввода». Однако есть несколько способов, которыми ваш код может принимать внешний ввод.

Один из них, как упоминалось выше @U-Mitic, - использовать компонент с вводом данных с клавиатуры с пульта дистанционного управления, например узел roKeyboardScreen или KeyboardDialog RSG и тому подобное.

Другим способом является отправка такой информации извне через http с использованием ECP (протокола внешнего управления Roku) — либо /input, либо /launch w/params.

person Nas Banov    schedule 10.09.2017