Вызов этого API используется для запуска службы push-уведомлений JPush SDK.
Разработчики приложения могут остановить службу push-уведомлений JPush, вызвав API остановки push-уведомлений. Если необходимо использовать службу push-уведомлений снова, следует вызвать API восстановления push-уведомлений.
Эта функция представляет собой полностью локальное состояние. То есть состояние остановки push-уведомлений не сохраняется на сервере.
Если после остановки push-уведомлений разработчик приложения переустановит приложение или очистит данные,
JPush SDK вернётся к нормальному поведению по умолчанию (поскольку сохранённое локальное состояние было удалено).
Эта функция работает аналогично эффекту прерывания сети, то есть сообщения, отправленные во время остановки push-уведомлений, будут доставлены, когда служба push-уведомлений будет восстановлена, если сообщения всё ещё находятся в пределах диапазона хранения.
window.plugins.jPushPlugin.init()
window.plugins.jPushPlugin.stopPush()
Восстанавливает службу push-уведомлений. После вызова этого API платформа iOS повторно регистрируется в APNS.
window.plugins.jPushPlugin.resumePush()
Проверяет, остановлена ли служба push-уведомлений на платформе iOS.
window.plugins.jPushPlugin.isPushStopped(callback)
— callback — функция обратного вызова, которая уведомляет о состоянии службы push-уведомлений JPush.
window.plugins.jPushPlugin.isPushStopped(callback);
var callback = function(data) {
if(data > 0) {
// Закрыто
} else {
// Открыто
}
}
RegistrationID — определение:
После успешной первой регистрации приложения, интегрированного с JPush SDK, на сервере JPush сервер вернёт уникальный идентификатор устройства — RegistrationID. JPush SDK отправит RegistrationID в приложение в виде широковещательного сообщения.
Приложение может сохранить этот RegistrationID на собственном сервере приложений, чтобы отправлять сообщения или уведомления на устройство на основе RegistrationID.
JPushPlugin.prototype.getRegistrationID(callback)
Вызовите этот API, чтобы получить соответствующий RegistrationID приложения. Только когда приложение успешно зарегистрировано на сервере JPush, возвращается соответствующее значение, в противном случае возвращается пустая строка.
window.plugins.jPushPlugin.getRegistrationID(onGetRegistradionID);
var onGetRegistradionID = function(data) {
try {
console.log("JPushPlugin:registrationID is " + data);
} catch(exception) {
console.log(exception);
}
}
Предоставляет несколько связанных API для установки псевдонимов (alias) и тегов (tags).
Эти API можно вызывать в любом месте приложения.
Псевдоним Alias
Присвойте псевдоним пользователю, установившему приложение. При отправке сообщений этому пользователю в будущем можно использовать этот псевдоним для идентификации.
Каждый пользователь может иметь только один псевдоним.
Рекомендуется использовать разные псевдонимы для разных пользователей в одном приложении. Это поможет однозначно идентифицировать пользователя, насколько это возможно.
Система не ограничивает использование одного псевдонима только одним пользователем. Если один и тот же псевдоним назначен нескольким пользователям, при отправке сообщения с этим псевдонимом серверная часть API одновременно отправит сообщение всем пользователям.
Например, в игре, где требуется войти в систему, можно установить псевдоним как userid. Во время игры оператор обнаружит, что пользователь не играл в игру в течение трёх дней, и отправит уведомление на клиент, чтобы напомнить пользователю, используя userid.
Тег Tag
Помечает пользователя, установившего приложение. Основная цель — упростить отправку массовых push-сообщений разработчиками на основе тегов.
Можно присвоить несколько тегов одному пользователю.
Разные приложения и разные пользователи могут иметь одинаковые теги.
Пример: game, old_page, women.
JPushPlugin.prototype.setTagsWithAlias(tags, alias)
JPushPlugin.prototype.setTags(tags)
JPushPlugin.prototype.setAlias(alias)
Сама функция не возвращает значение, но необходимо зарегистрировать событие jpush.setTagsWithAlias для отслеживания результатов настройки.
document.addEventListener("jpush.setTagsWithAlias", onTagsWithAlias, false);
var onTagsWithAlias = function(event) {
try {
console.log("onTagsWithAlias");
var result = "result code:"+event.resultCode + " ";
result += "tags:" + event.tags + " ";
result += "alias:" + event.alias + " ";
$("#tagAliasResult").html(result);
} catch(exception) {
console.log(exception)
}
}
Code | Описание | Подробное объяснение |
---|---|---|
6001 | Недействительная настройка, tag/alias не должен быть нулевым | |
6002 | Настройка тайм-аута | Рекомендуется повторить попытку. |
6003 | Строка псевдонима недопустима | Эффективный псевдоним, состав тега: буквы (с учётом регистра), цифры, подчёркивание, китайские иероглифы. |
--- | ||
6004 | псевдоним сверхдлинный | максимум 40 байт, китайский UTF-8 — это 3 байта. |
6005 | один из тегов строки неверен | эффективный псевдоним, теги состоят из букв (с учётом регистра), цифр, подчёркивания, китайских иероглифов. |
6006 | один из тегов слишком длинный | один тег максимум 40 байтов китайский UTF-8 — это 3 байта. |
6007 | количество тегов превышает лимит(максимум 100) | это ограничение для устройства. Количество глобальных тегов приложения не ограничено. |
6008 | псевдоним/псевдоним превышает общий предел длины | общая длина максимум 1K байт. |
6011 | установка тега или псевдонима более 3 раз за 10 секунд | слишком частое выполнение операций в течение короткого времени. |
Событие запускается при активации или пробуждении приложения после нажатия на уведомление.
В файле js, где требуется получать уведомления, добавьте:
document.addEventListener("jpush.openNotification", onOpenNotification, false);
onOpenNotification необходимо написать так:
var onOpenNotification = function(event) { var alertContent; alertContent = event.aps.alert; alert("open Notificaiton:" + alertContent); }
Пример события:
{ "aps":{ "badge":1, "sound":"default", "alert":"Куда сегодня пойдём?" }, "key1":"value1", "key2":"value2", "_j_msgid":154604475 }
Приложение получает уведомление на переднем плане, что вызывает событие.
В файл js, где необходимо получать уведомления, добавьте:
document.addEventListener("jpush.receiveNotification", onReceiveNotification, false);
onReceiveNotification необходимо написать так:
var onReceiveNotification = function(event) { var alertContent; alertContent = event.aps.alert; alert("открытое уведомление:" + alertContent); }
Пример события
{ "aps":{ "badge":1, "sound":"default", "alert":"Куда сегодня пойдём?" }, "key1":"value1", "key2":"value2", "_j_msgid":154604475 }
Приложение находится в фоновом режиме и получает уведомление, что вызывает событие, можно выполнить код в фоновом режиме. Для настройки см. iOS 7 Background Remote Notification.
В файл js, где необходимо получать уведомления, добавьте:
document.addEventListener("jpush.backgroundNotification", onBackgroundNotification, false);
onBackgroundNotification необходимо написать так:
var onBackgroundNotification = function(event) { var alertContent; alertContent = event.aps.alert; alert("открытое уведомление:" + alertContent); }
Пример события
{ "aps":{ "badge":1, "sound":"default", "alert":"Куда сегодня пойдём?" }, "key1":"value1", "key2":"value2", "_j_msgid":154604475 }
Используется для получения сообщений в приложении iOS, функция обратного вызова (обратите внимание на разницу с уведомлением), эта функция не требует активного вызова. Не рекомендуется использовать функцию обратного вызова.
JPushPlugin.prototype.receiveMessageIniOSCallback(data)
data: это строка js, которую можно проанализировать с помощью следующего кода, конкретные ключи js зависят от сообщения приложения:
var bToObj = JSON.parse(data);
Получает сообщение приложения, рекомендуется использовать событие для передачи, но также сохраняет функцию обратного вызова receiveMessageIniOSCallback для совместимости с предыдущим кодом.
В файл js, где необходимо получать уведомления, добавьте:
document.addEventListener("jpush.receiveMessage", onReceiveMessage, false);
onReceiveMessage необходимо написать так:
var onReceiveMessage = function(event) {
try{
var message;
message = event.content;
$("#messageResult").html(message);
}catch(exception) {
console.log("JPushPlugin:onReceiveMessage-->" + exception);
}
}
Пример события:
{ "content":"Куда сегодня пойдём?", "extras": { "key":"не заполнено" } }
JPush инкапсулирует функцию значка, позволяя приложению отправлять значение значка на сервер JPush, который помогает управлять значением значка каждого пользователя на сервере JPush, упрощая настройку значения значка push. (Этот интерфейс не изменяет значение значка приложения напрямую. Чтобы изменить значение значка локально, используйте setApplicationIconBadgeNumber.)
window.plugins.jPushPlugin.prototype.setBadge(value)
window.plugins.jPushPlugin.prototype.reSetBadge()
resetBadge эквивалентен setBadge(0).
Значение параметра: [0,99999].
Нет, консоль будет регистрировать результаты настройки.
window.plugins.jPushPlugin.setBadge(5);
window.plugins.jPushPlugin.reSetBadge(); **Идентификатор**: обязательно, идентификатор, при получении содержимого APNS-уведомления через это поле можно определить, было ли нажатие на уведомление или на какую-либо операцию.
Опция: обязательно, значения:
Тип: необязательно, если значение равно «textInput», то будет создана операция быстрого ответа.
TextInputButtonTitle: необязательно, заголовок кнопки быстрого ответа.
TextInputPlaceholder: необязательно, заполнитель поля ввода быстрого ответа.
CategoryId: category id, используется для маркировки этой группы операций. При отправке уведомления в поле payload
добавляется категория, которую можно отобразить в соответствующей группе операций. Например: id1 соответствует [операция A, операция B], id2 соответствует [операция А, операция C].
window.plugins.jPushPlugin.addDismissActions([{"title":"t1", "identifier":"id1", "option":"0"}, {"title":"t2", "identifier":"id2", "option":"3", "type":"textInput", "textInputButtonTitle":"回复", "textInputPlaceholder":"点此输入回复内容"}], "categoryId_t1_t2");
Отображение дополнительных действий в push-уведомлениях с эффектом 3D-touch на устройствах iPhone 6s и более поздних версий с iOS 9 и выше.
Рекомендуется вызывать этот API сразу после запуска приложения.
Эффект аналогичен показанному на рисунке ниже:
window.plugins.jPushPlugin.prototype.addNotificationActions(actions, categoryId);
Параметры аналогичны API — addDismissActions.
Пример кода аналогичен API — addDismissActions.
(iOS 10) Отображение изображений, GIF, аудио и видео в виде мультимедийных материалов в уведомлениях на экране блокировки телефона, в центре уведомлений и в меню приложений. Эффект аналогичен показанному на рисунке ниже:
Сначала настройте сертификат проекта iOS. На рисунке ниже нет никаких предупреждений об ошибках:
Откройте Xcode Project — File — New — Target — iOS — Notification Service Extension — Next — Product Name заполните jpushNotificationService — Finish, как показано на рисунке ниже:
В каталоге проекта Xcode автоматически создаётся папка jpushNotificationService и три файла. Загрузите файлы NotificationService.h и NotificationService.m из папки src/ios/notificationService/ плагина jpush-phonegap-plugin и замените их содержимое соответствующими файлами.
Перетащите изображения, GIF, аудио, видео и другие ресурсы в папку jpushNotificationService в каталоге проекта Xcode. Появится меню, выберите следующее:
Установите флажок в разделе Mutable-Content в окне Push Notification Console — Optional Settings.
Добавьте дополнительное поле с ключом JPushPluginAttachment и значением имени ресурса, например aPic.png. Этот ресурс должен быть добавлен в каталог проекта на шаге 4, а имя файла и расширение должны совпадать. Шаги 5 и 6 показаны на рисунке ниже:
Также шаги 5 и 6 могут быть выполнены с помощью пользовательского payload на сервере, как показано ниже:
{
aps:{
alert:{...},
mutable-content:1 //обязательно
}
JPushPluginAttachment:aPic.png //обязательно
}
Получение информации о настройках уведомлений для данного приложения у пользователя.
window.plugins.jPushPlugin.prototype.getUserNotificationSettings(callback);
Для iOS 10 и ниже:
Для iOS 10 и выше:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )