VOIP push не всегда пробуждает приложение

Я работаю над приложением, использующим PushKit/voip push для пробуждения приложения для получения сообщений. Это хорошо для тестирования устройств (убивает приложение и может просыпаться при нажатии voip), но для некоторых пользователей оно никогда не просыпается. Они используют последнюю версию iOS и приложение.

Я также обнаружил, что после того, как пользователь удалил/переустановил приложение, оно внезапно сработало.

Также кажется, что большинство устройств, которые не могут проснуться, установили приложение в течение длительного времени, скажем, 1-2 года назад, но все они обновились до последней версии приложения.

Мне интересно 1. как это (установлено давно) влияет на пробуждение приложения. 2. Как удаление/переустановка помогает проснуться. И 3. что я могу сделать, чтобы улучшить его, не прося пользователя переустановить.

Спасибо!


person Ethan Long    schedule 26.06.2018    source источник


Ответы (1)


В Pushkit PKPushRegistryDelegate доступно didInvalidatePushTokenFor. Когда более длинный токен pushkit недоступен, вызывается этот метод. Вы можете сообщить, используя вызов API, чтобы не отправлять уведомление на это конкретное устройство (токен pushkit). И вы можете снова вызвать свой метод регистрации push-уведомлений, последний токен pushkit, который вы получите, который можно использовать для дальнейших новых push-уведомлений.

     @method        pushRegistry:didInvalidatePushTokenForType:
     @abstract      This method is invoked if a previously provided push token is no longer valid for use. No action is
                    necessary to rerequest registration. This feedback can be used to update an app's server to no longer
                    send push notifications of the specified type to this device.
     @param         registry
                    The PKPushRegistry instance responsible for the delegate callback.
     @param         type
                    This is a PKPushType constant which is present in [registry desiredPushTypes].



@available(iOS 8.0, *)
optional public func pushRegistry(_ registry: PKPushRegistry, didInvalidatePushTokenFor type: PKPushType)

Дополнительные сведения см. на странице https://github.com/hasyapanchasara/PushKit_SilentPushNotification.

person Hasya    schedule 29.08.2018