Как проверить подключение к сети в BrightScript - PullRequest
1 голос
/ 14 мая 2019

Я пытаюсь определить подключение к Интернету в BrightScript, используя сценограф. Если нет интернета, я хотел бы показать, что в интернете пропадает ошибка.

Я проверил документацию Року, там я не нашел много примеров кодирования.

Я обнаружил, что мы можем использовать GetInfo().linkStatus для получения статуса сети

Но я хочу добавить наблюдателя, чтобы получать статус каждый раз, когда статус меняется.

1 Ответ

2 голосов
/ 15 мая 2019

вы можете проверить ваш порт сообщений на события linkStatus на BrightScript и отразить его состояние в вашей сцене SG.

Вот пример:

Добавьте поле в scene.xml в качестве интерфейса состояния связи между brs и SG, например

<field id="offline" type="boolean" value="false" alwaysNotify="true" onChange="onOfflineChanged" />

Затем в main.brs создайте экземпляр roDeviceInfo (в случае, если его еще нет) и назначьте тот же порт сообщения, который вы уже используете:

m.deviceInfo = CreateObject("roDeviceInfo")
m.deviceInfo.setMessagePort(m.port)

Включить события статуса ссылки в вашем экземпляре roDeviceInfo

m.deviceInfo.EnableLinkStatusEvent(true)

чтобы иметь возможность получать roDeviceInfoEvent события при ожидании новых сообщений от вашего roMessagePort.

Каждый раз, когда вы получаете сообщение от своего порта, проверяйте его тип и присваивайте новое значение linkStatus полю сцены, созданному на первом шаге

if msgType = "roDeviceInfoEvent" and msg.isStatusMessage() then scene.offline = not msg.getInfo().linkStatus

Обратный вызов должен быть объявлен в scene.brs file

function onOfflineChanged()
    if(m.top.offline)
       ' your code here
    end if
end function

и все.

Для дополнительной корректности вы должны проверить его статус, как только приложение будет запущено. Вы можете сделать это с

scene.offline = not m.deviceInfo.GetLinkStatus()

перед входом в цикл while (true).

...