VOIP push не всегда будит приложение - PullRequest
0 голосов
/ 26 июня 2018

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

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

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

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

Спасибо!

1 Ответ

0 голосов
/ 29 августа 2018

В 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

...