`on ('Notification')` не запускается на iOS, когда приложение не запущено - PullRequest
0 голосов
/ 29 июня 2018

Я использую phonegap-plugin-push в своем приложении ionic3, и я столкнулся с этой проблемой на платформе iOS (с android все в порядке). Когда приложение находится в фоновом режиме / на переднем плане, все работает как положено. Однако когда приложение не запущено, я получаю сообщение на панели уведомлений, но ни при нажатии на уведомление, ни на значок приложения не запускается событие on('notification'), оно просто запускается и игнорирует входящее уведомление.

Я использую { ... content-available: 1} в сообщении aps json, как предложено в документации, но, похоже, оно не оказывает никакого влияния (хотя и влияет на Android), само ионное приложение никогда не получает сообщение, даже если устройство получило его и отобразило на панели задач.

Ниже, я показываю свои конфигурации и пример сообщения, отправляемого push-сервисам. Если у кого-то есть какие-либо идеи о том, как с этим разобраться, я буду признателен, я протестировал на ios 8.x и ios 11.x, оба показали одинаковое поведение.

const options: PushOptions = {
    android: {
        senderID: '*************',
        icon: 'ic_stat_ic_notification'
    },
    ios: {
        alert: 'true',
        badge: 'true',
        sound: 'true'
    },
    windows: {}
};

platform.ready().then(() => {
    push.on('registration').subscribe((data: EventResponse) => {
        // register data.registrationId
    });

    push.on('notification').subscribe((data: EventResponse) => {
        alert(data.message)
    });
});

Пример сообщения:

{
    "aps": {
      "alert": "This is a Push",
      "badge": 1,
      "content-available": 1
    },
    "payload": {
      "type": "news"
    }
}

1 Ответ

0 голосов
/ 29 июня 2018

Это слишком длинный комментарий. Это скорее косвенный ответ.

1) или значок приложения вызывает событие включения («уведомления») <- это ожидается. Представьте, что ваше приложение только что получило 10 уведомлений. Как он должен знать, какое уведомление вы намеревались открыть? </p>

2) также не нажимая на уведомление <- это должно вызвать срабатывание чего-либо в вашем коде. Вы внедрили <a href="https://developer.apple.com/documentation/usernotifications/unusernotificationcenterdelegate/1649501-usernotificationcenter?language=objc" rel="nofollow noreferrer">didReceiveNotificationResponse? Это называется? Или ваш didFinishLaunching запускается с ключом remoteNotification? Как насчет вашего application(_:didReceiveRemoteNotification:fetchCompletionHandler:), как его называют?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...