Push-уведомления больше не работают с iOS 13 для приложения Xamarin - PullRequest
1 голос
/ 07 октября 2019

Поскольку общедоступная версия iOS 13 push-уведомлений, похоже, больше не работает для моего проекта Xamarin.Forms iOS. В настоящее время я использую Центр уведомлений Azure для отправки тестовых уведомлений, и ранее мои iPhone без проблем получали уведомления. Начиная с iOS13 этого больше не происходит.

Я не использую OneSignal, но они опубликовали статью об изменениях, которые были сделаны для push-уведомлений: https://onesignal.com/blog/ios-13-introduces-4-breaking-changes-to-notifications/

Эта проблема все еще присутствует? Или у кого-нибудь есть источники, подтверждающие эту проблему, кроме SignalOne?

public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken) {
    if (Hub == null) {
        Hub = new SBNotificationHub(ApiConstants.ListenConnectionString, ApiConstants.NotificationHubName);
    }

    // Following from the comments with FreakyAli, I have added these 3 lines
    Byte[] result = new byte[deviceToken.Length];
    Marshal.Copy(deviceToken.Bytes, result, 0, (Int32)deviceToken.Length);
    String token = BitConverter.ToString(result).Replace("-", "");

    // Update registration with Azure Notification Hub
    Hub.UnregisterAllAsync(token, (error) => {
        if (error != null) {
            Debug.WriteLine($"Unable to call unregister {error}");
        }

        NSSet tags = null;

        Hub.RegisterNativeAsync(deviceToken, tags, (errorCallback) => {
            if (errorCallback != null) {
                Debug.WriteLine($"RegisterNativeAsync error: {errorCallback}");
            }
        });
    });
}

Приведенный выше код работал все время, но во время отладки я заметил, что он больше не переходит в Hub.UnregisterAllAsync(), и я считаю, что это вызываеткакая-то ошибка? (Хотя в этом нет никакого смысла)

=================================================================
    Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x1bffaaf44):
0x1bffaaf34  c0 03 
5f d6 1f 
20 03 d5 
1f 20 
03 d5 01 ec 
7c 92  
.._.. 
...
 ..
..|
.
0x1bffaaf44  20 00 c0 3d c3 f9 ff 10 
62 04 c1 3c 02 0c 40 92 
  ..=.
..
.b.
.<.
.@.

0x1bffaaf54  
63 00 02 
cb 61 00 
c0 3d 00 1c a1 4e 
05 00 
00 
14 
 c.
..
a.
.=.
.
.
N....
0x1bffaaf64  1f 20 03 d5 
1f 20 03 d5 1f 20 03 d5 20 0c 
c1 3c  . ..
. ... .. ..<

Я нашел их, хотя и не уверен, насколько они связаны с моей текущей проблемой. https://github.com/Azure/azure-notificationhubs-dotnet/issues/88 https://github.com/Azure/azure-notificationhubs-dotnet/issues/96

1 Ответ

0 голосов
/ 13 ноября 2019

Они недавно сменили свой токен, вам нужно внести небольшие изменения, перейдя по этой ссылке https://dev.to/codeprototype/correctly-capture-ios-13-device-token-in-xamarin-1968

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