Мы реализовали удаленные push-уведомления в нашем приложении. Мы хотели бы достичь того, чтобы, когда наше приложение работает в фоновом режиме, приходит удаленное уведомление, пользователь нажимает на уведомление, мы выполняем некоторые задачи на основе информации уведомления. Я заметил, что когда приложение было в фоновом режиме, когда приходило уведомление, в Appdelegate никогда не вызываются DidReceiveRemoteNotification и ReceivedRemoteNotification. У меня нет возможности получить уведомление от userInfo. Кто-нибудь сталкивался с этой проблемой? Это ошибка? Любая помощь приветствуется!
Спасибо, Личанг
Я использую pushsharp для отправки уведомлений
Убедитесь, что вы тестируете на реальном устройстве. Вам необходимо иметь это в вашем info.plist
:
<key>UIBackgroundModes</key>
<array>
<string>remote-notification</string>
</array>
и это в вашем Entitlements.plist
:
<dict>
<key>aps-environment</key>
<string>development</string>
</dict>
Пусть ваш класс AppDelegate
реализует этот интерфейс: IUNUserNotificationCenterDelegate
.
Попробуйте добавить это и посмотрите, будет ли он вызван:
[Export("userNotificationCenter:willPresentNotification:withCompletionHandler:")]
public void WillPresentNotification(UNUserNotificationCenter center,
UNNotification notification,
Action<UNNotificationPresentationOptions> completionHandler)
{
completionHandler?.Invoke(UNNotificationPresentationOptions.Alert);
}
public override void DidReceiveRemoteNotification(UIApplication application,
NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
{
//BACKGROUND
//handleNotification(userInfo);
completionHandler(UIBackgroundFetchResult.NewData);
}
Кроме того, на портале разработчика Apple убедитесь, что вы добавили что-то для Ключи или сертификат Службы Apple Push, и у вас есть сертификат в профиле обеспечения, который подписывает приложение.
Спасибо за вашу информацию. Я попробую это.
Я забыл упомянуть, что получил удаленное уведомление, когда приложение было в фоновом режиме. Проблема заключалась в том, что DidReceiveRemoteNotification не запускался. Вот почему я не мог получить информацию об уведомлении от userinfo.
Используете ли вы какие-либо сторонние службы для push-уведомлений, такие как Appcenter, Firebase или Azure Notification Hub?