2015-11-22 7 views
1

Я слежу за учебником, найденным по адресу: https://azure.microsoft.com/en-us/documentation/articles/partner-xamarin-mobile-services-xamarin-forms-get-started-push/, чтобы попытаться получить push-уведомления для работы в моем приложении Xamarin.Forms.Xamarin.Forms iOS Невозможно настроить оповещения

У меня есть работающие на Android, но у меня есть ошибка в iOS. Мне нужно настроить текст (с телефона) до того, как уведомление действительно будет сделано, но я не могу на ios с тех пор, как приложение работает в фоновом режиме, функция ReceivedRemoteNotification не вызывается.

Вот что-то подобное тому, что мое уведомление код обработки выглядит следующим образом:

public override void ReceivedRemoteNotification(UIApplication application, NSDictionary userInfo) 
{ 
    NSObject inAppMessage; 

    bool success = userInfo.TryGetValue(new NSString("inAppMessage"), out inAppMessage); 

    if (success) 
    { 
     //change the text that is displayed 
     string newNotText = ModifyNotification(inAppMessage.ToString()); 

     var alert = new UIAlertView("Got push notification", newNotText, null, "OK", null); 
     alert.Show(); 
    } 
} 

Как я могу настроить уведомление, принимаемые на прошивке?

ответ

2

iOS Push и GCM отличаются тем, как они работают, GCM позволяет App обрабатывать уведомление и запускать локальное уведомление, iOS этого не делает.

iOS уведомляет ваше приложение только о том, что уведомление существует, но для этого есть обходные пути.

КСН вы можете использовать бесшумные уведомлений, которые не видны пользователю, но вы получите ReceivedRemoteNotification CallBack

Вы можете прочитать здесь: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html

Эта документация говорит вам следующее:

Свойство, доступное для содержимого со значением 1, позволяет удаленному уведомлению действовать как «молчаливое» уведомление. Когда приходит тихое уведомление, iOS пробуждает ваше приложение в фоновом режиме, чтобы вы могли получать новые данные с вашего сервера или выполнять обработку фоновой информации. Пользователям не сообщается о новой или измененной информации, которая возникает из-за молчаливого уведомления, но они могут узнать об этом при следующем открытии приложения.

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

Будьте готовы, что это не является надежным в любом случае, и если вы не особым привилегированным приложение (например, VOIP) вы не в состоянии сделать то, что вы хотите надежный способ на прошивке

Backend пример:

Просто измените шаблон вар, как и в вашем учебнике используется:

const string template = "{\"aps\":{\"content-available\":\"1\",\"alert\":\"$(message)\"}}"; 

Потому что это не достаточно ясно, если вы не хотите, чтобы получить какое-либо уведомление вы не должны использовать предупреждение или звуковые свойства для уведомления

const string template = "{\"aps\":{\"content-available\":\"1\",\"someproperty\":\"propertyvalue\"}}"; 
+0

Спасибо, что ответили, я занимаюсь исследованиями, и это согласуется с тем, что я нашел - если бы вы могли включить пример кода, было бы очень полезно. – Oblivionkey3

+0

Пример кода для серверов? – Michiluki

+0

Возможно, пример обработки уведомления после его получения в фоновом режиме. – Oblivionkey3

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