2015-04-30 2 views
2

Я шел через пошаговом Xamarin на IOS местных уведомлений:Xamarin IOS Местные Уведомления не работает

http://developer.xamarin.com/guides/cross-platform/application_fundamentals/notifications/ios/local_notifications_in_ios_walkthrough/

И я просто не могу заставить его работать. Он строит отлично, но метод ReceivedLocalNotification на AppDelegate никогда не срабатывает. Что я делаю не так?

+0

Являются ли ваше приложение передним или фоновым при срабатывании уведомления? Метод ReceivedLocalNotification будет только запускаться, если ваше приложение находится на переднем плане. – FormigaNinja

ответ

3

Если вы на прошивке 8 вы также должны зарегистрировать приложение, чтобы получать уведомления, как описано здесь:

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW1

Добавьте следующий код в FinishedLaunching метод вашего AppDelegate класса:

if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0)) { 
    UIUserNotificationType notificationTypes = UIUserNotificationType.Alert | 
       UIUserNotificationType.Badge | 
       UIUserNotificationType.Sound; 

    var userNoticationSettings = UIUserNotificationSettings.GetSettingsForTypes(notificationTypes, new NSSet(new string[] {})); 

    UIApplication.SharedApplication.RegisterUserNotificationSettings (userNoticationSettings); 
} 
+0

Это правильный ответ на ваш вопрос? Если ДА, отметьте как принято. – FormigaNinja

+1

Hi FormigaNinja. Я ответил на свой вопрос, так что я правильно понял, что не могу отметить его как принятый еще на 2 дня? –

+1

В качестве дополнения к этому, если вы используете устройство НЕ в ios8, добавленный код выдает ошибку, поэтому оберните код внутри стандартной проверки для версии IOS. –

Смежные вопросы