Как известно, терминал позволяет отсылать push-уведомления от служб компании MetaQuotes, самого терминала и MQL-программ на мобильное устройство с операционными системами iOS или Android. Для работы этой технологии используется MetaQuotes ID — уникальный идентификатор "пользователя" (см. врезку). MetaQuotes ID выделяется при установке мобильной версии терминала на гаджет пользователя, после чего ID следует указать в настройках терминала, на закладке Уведомления (через запятую можно задать несколько идентификаторов). После этого функционал по отправке push-уведомлений становится доступен для MQL-программ.
На самом деле MetaQuotes ID идентифицирует не пользователя, а конкретную установку мобильного терминала, которых у пользователя может быть несколько, причем ID не связан по-умолчанию с регистрацией в сообществе mql5.com, хотя такую привязку можно указать на сайте. Не следует путать регистрацию пользователя в сообществе и MetaQuotes ID. Для работы с уведомлениями пользователь терминала не обязан логиниться в сообществе.
bool SendNotification(const string text)
Функция SendNotification посылает push-уведомления с заданным текстом во все мобильные терминалы, имеющие MetaQuotes ID из настроек терминала. Длина сообщения — не более 255 символов.
При успешной отправке уведомления из терминала функция возвращает true, а в случае ошибки — false. Возможные коды ошибок _LastError:
При наличии соединения с сервером отправка происходит моментально, и, если устройство пользователя находится в онлайн, сообщение должно достичь адресата, однако гарантировать доставку в общем случае нельзя. Обратного уведомления программы о доставке сообщения не предусмотрено. История push-сообщений на сервере для отложенной доставки не сохраняется.
Для функции установлены ограничения на частоту использования: не более 2-х вызовов в секунду и не более 10 в минуту.
В тестере стратегий функция SendNotification не выполняется.
К книге прилагается простой скрипт NetNotification.mq5, отправляющий тестовое уведомление при наличии правильных настроек.
void OnStart()
|