Я работаю над приложением iOS с xamarin. Теперь я получил эту проблему, я хочу отправить Push-уведомления с сервера на подключенные устройства. Я могу получать эти уведомления, когда мое приложение работает &, когда мое приложение находится в фоновом режиме. Теперь проблема в том, могу ли я получать уведомления, когда мое приложение убито? (Кнопка «Главная»)? Я читал об этом, и это должно быть возможно, хотя и не надежным. Но все же, как мне это сделать?Не удается получить APNS, когда приложение убито
Я прочитал о получении уведомления через launchoptions
public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
но это ВСЕГДА Null & нет никакого способа, чтобы отладить его, так как я закрываю мое приложение. Любые мысли о том, что я делаю неправильно?
P.S. Я использую профиль обеспечения разработки (возможно, это проблема?)
Edit 1: Extra информация (код)
public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
{
application.RegisterForRemoteNotificationTypes (UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound);
if (launchOptions != null)
{
// check for a local notification
if (launchOptions.ContainsKey(UIApplication.LaunchOptionsRemoteNotificationKey))
{
var localNotification = launchOptions[UIApplication.LaunchOptionsRemoteNotificationKey];
if (localNotification != null)
{
new UIAlertView("TESTER", "TESTER3", null, "OK", null).Show();
// reset our badge
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
}
}
}
return true;
}
public override void RegisteredForRemoteNotifications (UIApplication application, NSData deviceToken)
{
Console.WriteLine (deviceToken.ToString());
String tokenStr = deviceToken.Description;
var deviceToken1 = tokenStr.Replace ("<", "").Replace (">", "").Replace (" ", "");
ViewController.deviceToken = deviceToken1;
}
public override void DidReceiveRemoteNotification (UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
{
Console.WriteLine ("Recieved");
var message = userInfo.ValueForKey (new NSString ("aps")).ValueForKey (new NSString ("message")).ToString();
var reload = userInfo.ValueForKey (new NSString ("aps")).ValueForKey (new NSString ("refreshList")).ToString();
var vehicleId = userInfo.ValueForKey (new NSString ("aps")).ValueForKey (new NSString ("vehicleListId")).ToString();
}
==> Есть вещи с 3 переменными (с информацией)
Уважаемый, благодарю вас за ваш ответ! Я использую правильные сертификаты, так как я могу получать уведомления, когда приложение работает/фон. Пока я вижу, у меня такая же реализация. общественного переопределение BOOL FinishedLaunching (UIApplication приложение, NSDictionary launchOptions) если (launchOptions! = NULL) { // Сделайте что-нибудь и у меня получил remoteNotification общественного переопределения недействительным DidReceiveRemoteNotification (UIApplication приложение, NSDictionary USERINFO, Action completeHandler) –
hm ... если ваша реализация точно такая же, как моя, тогда я действительно не знаю, где проблема. Возможно, вам придется опубликовать дополнительную информацию, чтобы другие люди лучше понимали вашу проблему. – Ricky
Я отредактировал свой вопрос с кодом, который у меня есть на данный момент. Надеюсь, это немного прояснится. –