HUAWEI Push Kit. Сервис, используемый для доставки push-уведомлений на устройства под управлением ОС Android c установленными сервисами Huawei.
Полное описание, параметры и ограничения
ТипПодписчикаДоставляемыхУведомлений.HPK (DeliverableNotificationSubscriberType.HPK)
ТипПодписчикаДоставляемыхУведомлений (DeliverableNotificationSubscriberType)
HPK (HPK)
Доступен, начиная с версии 8.3.24.
Описание:
HUAWEI Push Kit. Сервис, используемый для доставки push-уведомлений на устройства под управлением ОС Android c установленными сервисами Huawei.
Использование в версии:
Доступен, начиная с версии 8.3.24.
Методическая информация
Практические примеры
Сопоставить настоящего своего подписчика и аутентификацию: HPK
Один собственный реальный подписчик и один вызов отправки; ошибки читает штатный выходной массив.
Где и как запускать
Сервер своего настроенного мобильного приложения; один ручной собственный тест.
Подготовка
Только своё мобильное приложение, своё устройство и собственная настройка push-провайдера. Основной блок — тело серверной процедуры своей обработки с параметрами ПутьКСвоемуСнимку Строка и ДанныеДоступа соответствующего native-типа; обе дополнительные функции — в том же серверном модуле.
Подписчик — настоящий ИдентификаторПодписчикаДоставляемыхУведомлений, ранее полученный собственной рабочей мобильной регистрацией и сохранённый вашим приложением. Снимок — собственный UTF-8-текст результата ЗначениеВСтрокуВнутр(Подписчик). Идентификатор устройства / приложения нельзя сочинять и нельзя создавать вымышленным конструктором.
На Android штатный ПолучитьИдентификаторПодписчикаУведомлений документирован для FCM (тип GCM). Этот вызов не выбирает HPK / RMS / WNS параметром. Для примера другого провайдера необходим уже существующий настоящий идентификатор именно своей соответствующей сборки / платформы. Если его нет, сначала настройте поддержку провайдера; подменять ТипПодписчика нельзя.
Снимок содержит идентификаторы устройства / приложения: не публикуйте его, не открывайте чужие скачанные строки через ЗначениеИзСтрокиВнутр и не принимайте этот файл от внешнего пользователя. Это только собственный доверенный снимок своей системы. Полный снимок в сообщения не выводится.
ДанныеДоступа передайте из собственного защищённого источника сервера: APNS — собственный сертификат, остальные перечисленные провайдеры — соответствующий действующий ключ / маркер доступа. Секреты не зашиваются в код, не копируются в HTML и не выводятся.
Ручной запуск действительно делает ОДНУ внешнюю отправку на своё устройство через заданный провайдер. Выполняйте только с согласия владельца и с доступным собственным сервисом. При сборке справочника сеть, уведомления и BSL не запускались.
Подписчик = ПрочитатьСвоегоПодписчика(ПутьКСвоемуСнимку);
Провайдер = ТипПодписчикаДоставляемыхУведомлений.HPK;
Проблемы = ОтправитьОдноСвоеУведомление(Подписчик, Провайдер, ДанныеДоступа);
Для Каждого Проблема Из Проблемы Цикл
Сообщить("Проблема своего провайдера: " + Строка(Проблема.ТипОшибки));
Сообщить("Затронуто собственных получателей: " + Строка(Проблема.Получатели.Количество()));
КонецЦикла;Тот же модуль: прочитать доверенный собственный native-снимок, не выдумывать подписчика
Функция ПрочитатьСвоегоПодписчика(ПутьКСвоемуСнимку)
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ПутьКСвоемуСнимку, КодировкаТекста.UTF8);
Подписчик = ЗначениеИзСтрокиВнутр(Текст.ПолучитьТекст());
Если ТипЗнч(Подписчик) <> Тип("ИдентификаторПодписчикаДоставляемыхУведомлений") Тогда
ВызватьИсключение "Нужен настоящий сохранённый идентификатор собственного устройства";
КонецЕсли;
Возврат Подписчик;
КонецФункцииТот же модуль: одно уведомление и пятый выходной параметр
Функция ОтправитьОдноСвоеУведомление(Подписчик, Провайдер, ДанныеДоступа)
Если Подписчик.ТипПодписчика <> Провайдер Тогда
ВызватьИсключение "Снимок своего устройства относится к другому провайдеру";
КонецЕсли;
Уведомление = Новый ДоставляемоеУведомление;
Уведомление.Текст = "Собственная учебная книга: 3 экземпляра";
Уведомление.Получатели.Добавить(Подписчик);
Аутентификация = Новый Соответствие;
Аутентификация.Вставить(Провайдер, ДанныеДоступа);
Исключенные = Новый Массив;
Проблемы = Новый Массив;
ОтправкаДоставляемыхУведомлений.Отправить(Уведомление, Аутентификация, Исключенные, Ложь, Проблемы);
Сообщить("Исключённых идентификаторов: " + Строка(Исключенные.Количество()));
Возврат Проблемы;
КонецФункцииРазбор по шагам
Подготовьте настоящий собственный снимок нужного провайдера и его действующие данные доступа.
Отправьте одну собственную заметку только своему устройству.
Прочитайте возвращённые проблемы, не раскрывая идентификаторы / секреты.
Как проверить результат
Тип провайдера является настоящим ключом Соответствие второго аргумента Отправить. Подписчик того же типа проверяется до вызова. HPK / APNS / GCM / RMS / WNS не взаимозаменяемые строки и не режим, переключающий устройство.
Проблемы заполняются ПЯТЫМ аргументом процедуры Отправить, не её возвращаемым значением. Общее исключение может прервать вызов; пустой массив проблем сам по себе не доказывает фактическое получение / прочтение на устройстве.
Получатели — readonly-ссылка на изменяемый массив уведомления: используется Добавить, не замена свойства. ТипОшибки у проблемы readonly и не присваивается. Исключённые идентификаторы не удаляются автоматически из базы.
Ожидаемый результат
Есть настоящий источник идентификатора, реальный контракт аутентификации / отправки и корректный выходной массив.
На что обратить внимание
Не вызывайте эту процедуру при каждой перерисовке формы и не отправляйте повторно ради заполнения всех ветвей ошибки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.