uni-app использует unipush для отправки сводки о проблеме

uni-app

О проблеме не получения сообщений на телефонах oppo и xiaomi

Информация о приложении, нажатой OPPO, может быть получена только после онлайн.

О мобильном телефоне Huawei, продвигающем проблему, производители офлайн-каналов терпят неудачу

Когда платформа Huawei создает права PUSH, необходимо заполнить сертификат отпечатка пальца sha256.

И push-тест Huawei должен быть упакован с собственным сертификатом; (канал Huawei имеет проверку сертификата отпечатка пальца sha256)

Заполните отпечаток пальца сертификата платформы sha256 Huawei, как показано на рисунке:

Вопросы о push-мониторинге

Существует два типа push-сообщений: 1: уведомление 2: прозрачное сообщение

(1) сообщение push-уведомления, центр сообщений будет отображаться, щелкните уведомление, чтобы запустить (активировать) приложение для запуска на переднем плане, событие триггера «щелчок».

(2) Нажатие прозрачных данных может реагировать на щелчок и получение.

  1. Формат отправки прозрачных данных — стандартный формат ({title:"заголовок уведомления",content:"содержание уведомления",payload:"тест уведомления"}), который будет отображаться в центре сообщений, и когда пользователь щелкает этот сообщение, оно будет реагировать на событие щелчка и реагировать только на событие щелчка.

  2. Отправляемые прозрачные данные не в стандартном формате и текущее приложение активно, и при одновременном выполнении этих условий на событие приема можно отреагировать, и оно не будет отображаться в центре сообщений.

Резюме:

  • Инициировать событие клика: отправить прозрачные данные в стандартном формате, которые будут отображаться в центре сообщений.

  • Инициировать событие получения: отправить прозрачные данные в нестандартном формате и применить к действию, и они не будут отображаться в строке состояния сообщения.

ios:

  • В сети: может отвечать только на получение и не будет отображать push-уведомления в центре системных сообщений.

  • Автономный режим: используйте канал Apple APNS для отправки push-уведомлений и отображения их на панели системных уведомлений после их получения телефоном.Нажмите на сообщение, чтобы запустить приложение (если оно уже запущено, переключитесь с фона на передний план), и одновременно вызвать событие «щелчок».

Андроид:

  • Онлайн (доступен push-канал Gezui): и push-уведомления, и прозрачные сообщения используют push-канал GeTui для доставки push-сообщений.

  • В автономном режиме (канал кадров недоступен): если мобильный телефон производителя соответствует нажатию производителя (настройки производитель мобильных телефонов настраиваются и находятся на мобильном телефоне соответствующего производителя), Push-канал производителя используется для отправки Push Message; в противном случае используется автономный толчок производителя. Канал, автономные сообщения будут храниться в сообщении в автономном библиотеке, и приложение отправит Push-сообщения после того, как в автономном режиме будет онлайн.

plus.push.setAutoNotification(true)

//【APP在线】,收到透传消息通过,不会提醒至通知栏目,需要发送本地消息,再进行点击触发的点击事件。    
//【APP离线】,收到离线透传消息,必须通过Java后台的Intent字符串携带payload,且符合格式才能触发click事件,格式不符合不会触发  
plus.push.addEventListener("click", function(msg) {
 var payload;
 console.log("addEventListener click:" + JSON.stringify(msg));
 if (isIOS) {
  //APP离线点击包含click属性,这时payload是JSON对象 
  if (msg.type && msg.type == "click") {
   payload = msg.payload;
  } else {
   //APP在线,收到消息不会包含type属性,这时的payload是JSON字符串,需要转为JSON对象 
   payload = JSON.parse(msg.payload);
  }
  navigateTo(payload)
 } else {
  payload = JSON.parse(msg.payload);
  if (typeof payload === "string") {
   payload = JSON.parse(payload)
  }
  navigateTo(payload)
 }
}, false);


plus.push.addEventListener('receive', function(msg) {
 console.log("addEventListener receive:" + JSON.stringify(msg));
 if (isIOS) {
  //【APP离线】收到消息,但没有提醒(发生在一次收到多个离线消息时,只有一个有提醒,但其他的没有提醒)    
  //【APP在线】收到消息,不会触发系统消息,需要创建本地消息,但不能重复创建。必须加msg.type验证去除死循环     
  if (!msg.aps && msg.type == "receive") {
   //创建本地消息,发送的本地消息也会被receive方法接收到,但没有type属性,且aps是null    
   plus.push.createMessage(msg.content, JSON.stringify(msg.payload), { title: msg.title });
  }
 } else {
  //如果是Android,当APP在线时,收到透传消息不会进入系统消息,需要发送本地提醒。  
  plus.push.createMessage(msg.content, JSON.stringify(msg.payload), { title: msg.title });
 }
});

В этой статье используетсяmdniceнабор текста