2

我正在Xamarin中開發iOS應用程序,並且需要通過Amazon SNS從現有後臺接收推送通知。Xamarin.iOS應用程序未運行時未處理亞馬遜SNS推送通知

暫時我正在使用亞馬遜網頁發送測試通知到APNS_SANDBOX。

我寫了我的代碼,並創建了iOS應用程序的證書,當應用程序運行時,一切正常。但是,當應用程序處於後臺或根本沒有加載時,iOS設備不會收到通知。

在Xamarin Studio中的項目選項中,我在後臺模式下啓用了以下功能 已啓用後臺模式,後臺提取,遠程通知。 在iOS設備的常規設置中,後臺應用程序刷新在全局和應用程序中均處於啓用狀態。

我想我一定錯過了配置或蘋果證書中非常基本的東西,但我無法弄清楚什麼。

回答

1

從各種iOS/Objective C問題閱讀各種解決方案後,我設法找到解決方案。正是這種特殊的question讓我朝着正確的方向前進。 有我的代碼有問題訂閱推送通知iOS上運行時,8.0

我的原代碼:

public static void Subscribe() 
    { 
     if (UIDevice.CurrentDevice.SystemVersion [0] >= '8') 
     { 
      UIApplication.SharedApplication.RegisterForRemoteNotifications() 
     } 
     else 
     { 
      UIRemoteNotificationType notificationTypes = UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound; 
      UIApplication.SharedApplication.RegisterForRemoteNotificationTypes (notificationTypes); 
     } 
    } 

我的新代碼:

public static void Subscribe() 
    { 
     if (UIDevice.CurrentDevice.SystemVersion [0] >= '8') 
     { 
      UIUserNotificationType types = UIUserNotificationType.Badge | UIUserNotificationType.Sound | UIUserNotificationType.Alert; 
      UIUserNotificationSettings settings = UIUserNotificationSettings.GetSettingsForTypes (types, null); 
      UIApplication.SharedApplication.RegisterUserNotificationSettings (settings); 
     } 
     else 
     { 
      UIRemoteNotificationType notificationTypes = UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound; 
      UIApplication.SharedApplication.RegisterForRemoteNotificationTypes (notificationTypes); 
     } 
    } 

這種變化現在允許通知在應用程序處於後臺或未運行時正確接收。

相關問題