- 
  StackOverflow 文档
 
- 
  Xamarin.Forms 教程
 
- 
  推送通知
 
- 
  iOS 示例
 
- 你将需要一个开发设备
 
- 转到 Apple 开发人员帐户并创建启用推送通知的配置文件
 
- 你将需要某种方式来通知你的手机(AWS,Azure ..等) 我们将在此处使用 AWS
 
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    global::Xamarin.Forms.Forms.Init();
   //after typical Xamarin.Forms Init Stuff
   //variable to set-up the style of notifications you want, iOS supports 3 types
   var pushSettings = UIUserNotificationSettings.GetSettingsForTypes(
              UIUserNotificationType.Alert |
              UIUserNotificationType.Badge |
              UIUserNotificationType.Sound,
              null );  
       
        //both of these methods are in iOS, we have to override them and set them up
        //to allow push notifications
        app.RegisterUserNotificationSettings(pushSettings);  //pass the supported push notifications settings to register app in settings page
     
}
public override async void RegisteredForRemoteNotifications(UIApplication application, NSData token)
    {
        AmazonSimpleNotificationServiceClient snsClient = new AmazonSimpleNotificationServiceClient("your AWS credentials here");
        // This contains the registered push notification token stored on the phone. 
        var deviceToken = token.Description.Replace("<", "").Replace(">", "").Replace(" ", ""); 
        if (!string.IsNullOrEmpty(deviceToken))
        {
            //register with SNS to create an endpoint ARN, this means AWS can message your phone
            var response = await snsClient.CreatePlatformEndpointAsync(
            new CreatePlatformEndpointRequest
            {
                Token = deviceToken,
                PlatformApplicationArn = "yourARNwouldgohere" /* insert your platform application ARN here */
            });
            var endpoint = response.EndpointArn;
            //AWS lets you create topics, so use subscribe your app to a topic, so you can easily send out one push notification to all of your users
            var subscribeResponse = await snsClient.SubscribeAsync(new SubscribeRequest
            {
                TopicArn = "YourTopicARN here",
                Endpoint = endpoint,
                Protocol = "application"
            });
        }
    }