1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/huatech2016-jpush-phonegap-plugin

Клонировать/Скачать
iOS_API.md 29 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 05:12 cda85ed

iOS API

Начало и прекращение работы с push-уведомлениями

API — init

Вызов этого API используется для запуска службы push-уведомлений JPush SDK.

Разработчики приложения могут остановить службу push-уведомлений JPush, вызвав API остановки push-уведомлений. Если необходимо использовать службу push-уведомлений снова, следует вызвать API восстановления push-уведомлений.

Эта функция представляет собой полностью локальное состояние. То есть состояние остановки push-уведомлений не сохраняется на сервере.
Если после остановки push-уведомлений разработчик приложения переустановит приложение или очистит данные,
JPush SDK вернётся к нормальному поведению по умолчанию (поскольку сохранённое локальное состояние было удалено).
Эта функция работает аналогично эффекту прерывания сети, то есть сообщения, отправленные во время остановки push-уведомлений, будут доставлены, когда служба push-уведомлений будет восстановлена, если сообщения всё ещё находятся в пределах диапазона хранения.

Определение интерфейса

window.plugins.jPushPlugin.init()

API — stopPush

  • Не рекомендуется вызывать, поскольку этот API только делает DeviceToken недействительным, а настройки вашего приложения в разделе «Настройки» — «Уведомления» не меняются.
  • Рекомендуется: создать пользовательский интерфейс, который будет напоминать пользователю о необходимости отключить push-уведомления в настройках.

Определение интерфейса

window.plugins.jPushPlugin.stopPush()

API — resumePush

Восстанавливает службу push-уведомлений. После вызова этого API платформа iOS повторно регистрируется в APNS.

Определение интерфейса

window.plugins.jPushPlugin.resumePush()

API — isPushStopped

Проверяет, остановлена ли служба push-уведомлений на платформе iOS.

Определение интерфейса

window.plugins.jPushPlugin.isPushStopped(callback)

Описание параметров

— callback — функция обратного вызова, которая уведомляет о состоянии службы push-уведомлений JPush.

Пример кода

window.plugins.jPushPlugin.isPushStopped(callback);
var callback = function(data) {
    if(data > 0) {
        // Закрыто
    } else {
        // Открыто
    }
}

Получение RegistrationID

API — getRegistrationID

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 — setTagsWithAlias, setTags, setAlias

Предоставляет несколько связанных 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)

Описание параметров

  • tags:
    • Тип параметра — массив.
    • nil — этот вызов не устанавливает значение.
    • Пустой набор означает отмену предыдущей настройки.
    • Каждый раз при вызове необходимо устанавливать хотя бы один тег, заменяя предыдущую настройку, а не добавляя.
    • Допустимые имена тегов: буквы (с учётом регистра), цифры, подчёркивание, китайские иероглифы.
    • Ограничения: каждое имя тега должно содержать не более 40 байт, не более 100 тегов могут быть установлены одновременно, но общая длина не должна превышать 1 КБ (для определения длины следует использовать кодировку UTF-8).
    • Одно устройство может поддерживать не более 100 тегов, общее количество тегов в приложении не ограничено.
  • alias:
    • Тип параметра — строка.
    • nil — этот вызов не устанавливает значение.
    • Пустая строка («») означает отмену предыдущей настройки.
    • Допустимое имя псевдонима: буквы (с учётом регистра), цифры, подчёркивание, китайские иероглифы.
    • Ограничение: длина имени псевдонима не должна превышать 40 байтов (для определения длины следует использовать кодировку UTF-8).

Описание возвращаемого значения

Сама функция не возвращает значение, но необходимо зарегистрировать событие 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 секунд слишком частое выполнение операций в течение короткого времени.

Получение содержимого APNS-уведомления

Нажатие на уведомление

событие - jpush.openNotification

Событие запускается при активации или пробуждении приложения после нажатия на уведомление.

Пример кода

  • В файле 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 }

Получение уведомления на переднем плане

событие - jpush.receiveNotification

Приложение получает уведомление на переднем плане, что вызывает событие.

Пример кода

  • В файл 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 }

Получение уведомления в фоновом режиме

событие - jpush.backgroundNotification

Приложение находится в фоновом режиме и получает уведомление, что вызывает событие, можно выполнить код в фоновом режиме. Для настройки см. 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 }

API - receiveMessageIniOSCallback

Используется для получения сообщений в приложении iOS, функция обратного вызова (обратите внимание на разницу с уведомлением), эта функция не требует активного вызова. Не рекомендуется использовать функцию обратного вызова.

Определение интерфейса
JPushPlugin.prototype.receiveMessageIniOSCallback(data)
Описание параметров
  • data: это строка js, которую можно проанализировать с помощью следующего кода, конкретные ключи js зависят от сообщения приложения:

    var bToObj = JSON.parse(data);

Получение пользовательского содержимого сообщения

событие - jpush.receiveMessage

Получает сообщение приложения, рекомендуется использовать событие для передачи, но также сохраняет функцию обратного вызова 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":"не заполнено" } }

Установка значка

API - setBadge, resetBadge

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-уведомления через это поле можно определить, было ли нажатие на уведомление или на какую-либо операцию.
  • Опция: обязательно, значения:

    • UNNotificationActionOptionNone = 0;
    • UNNotificationActionOptionAuthenticationRequired = (1 << 0) — следует ли разблокировать перед выполнением операции;
    • UNNotificationActionOptionDestructive = (1 << 1) — должна ли операция быть обозначена как деструктивная;
    • UNNotificationActionOptionForeground = (1 << 2) — должна ли операция вызывать запуск приложения на переднем плане.
  • Тип: необязательно, если значение равно «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");

API — addNotificationActions

Отображение дополнительных действий в push-уведомлениях с эффектом 3D-touch на устройствах iPhone 6s и более поздних версий с iOS 9 и выше.

Рекомендуется вызывать этот API сразу после запуска приложения.

Эффект аналогичен показанному на рисунке ниже:

NotificationActions_00

Определение интерфейса

window.plugins.jPushPlugin.prototype.addNotificationActions(actions, categoryId);

Описание параметров

Параметры аналогичны API — addDismissActions.

Пример кода

Пример кода аналогичен API — addDismissActions.

Media Attachments

(iOS 10) Отображение изображений, GIF, аудио и видео в виде мультимедийных материалов в уведомлениях на экране блокировки телефона, в центре уведомлений и в меню приложений. Эффект аналогичен показанному на рисунке ниже:

MediaAttachments_00

Метод настройки

  1. Сначала настройте сертификат проекта iOS. На рисунке ниже нет никаких предупреждений об ошибках:

    MediaAttachments_01

  2. Откройте Xcode Project — File — New — Target — iOS — Notification Service Extension — Next — Product Name заполните jpushNotificationService — Finish, как показано на рисунке ниже:

MediaAttachments_02 MediaAttachments_03 MediaAttachments_04

  1. В каталоге проекта Xcode автоматически создаётся папка jpushNotificationService и три файла. Загрузите файлы NotificationService.h и NotificationService.m из папки src/ios/notificationService/ плагина jpush-phonegap-plugin и замените их содержимое соответствующими файлами.

  2. Перетащите изображения, GIF, аудио, видео и другие ресурсы в папку jpushNotificationService в каталоге проекта Xcode. Появится меню, выберите следующее:

MediaAttachments_06

  1. Установите флажок в разделе Mutable-Content в окне Push Notification Console — Optional Settings.

  2. Добавьте дополнительное поле с ключом JPushPluginAttachment и значением имени ресурса, например aPic.png. Этот ресурс должен быть добавлен в каталог проекта на шаге 4, а имя файла и расширение должны совпадать. Шаги 5 и 6 показаны на рисунке ниже:

MediaAttachments_05

Также шаги 5 и 6 могут быть выполнены с помощью пользовательского payload на сервере, как показано ниже:

{
aps:{
    alert:{...},
    mutable-content:1 //обязательно
}
JPushPluginAttachment:aPic.png //обязательно
}
  1. Отправьте немедленно.

Получение настроек уведомлений пользователя

API — getUserNotificationSettings

Получение информации о настройках уведомлений для данного приложения у пользователя.

Интерфейс определения

window.plugins.jPushPlugin.prototype.getUserNotificationSettings(callback);

Возвращаемое значение

  • Для iOS 10 и ниже:

    • UIRemoteNotificationTypeNone = 0,
    • UIRemoteNotificationTypeBadge = 1 << 0,
    • UIRemoteNotificationTypeSound = 1 << 1,
    • UIRemoteNotificationTypeAlert = 1 << 2,
    • UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3.
  • Для iOS 10 и выше:

    • authorizationStatus:
      • UNAuthorizationStatusNotDetermined = 0 — пользователь ещё не сделал выбор относительно того, может ли приложение отправлять уведомления пользователю;
      • UNAuthorizationStatusDenied = 1 — приложению не разрешено отправлять уведомления пользователю;
      • UNAuthorizationStatusAuthorized = 2 — приложение авторизовано для отправки уведомлений пользователю.
    • soundSetting, badgeSetting, alertSetting, notificationCenterSetting, lockScreenSetting, carPlaySetting:
      • UNNotificationSettingNotSupported = 0 — приложение не поддерживает этот тип уведомлений;
      • UNNotificationSettingDisabled = 1 — настройка уведомлений отключена;
      • UNNotificationSettingEnabled = 2 — настройка уведомлений включена.
    • alertStyle:
      • UNAlertStyleNone = 0;
      • UNAlertStyleBanner = 1;
      • UNAlertStyleAlert = 2.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/huatech2016-jpush-phonegap-plugin.git
git@api.gitlife.ru:oschina-mirror/huatech2016-jpush-phonegap-plugin.git
oschina-mirror
huatech2016-jpush-phonegap-plugin
huatech2016-jpush-phonegap-plugin
master