연습-Xamarin.ios에서 로컬 알림 사용Walkthrough - Using Local Notifications in Xamarin.iOS

이 섹션에서는 Xamarin.ios 응용 프로그램에서 로컬 알림을 사용 하는 방법을 안내 합니다. 앱에서 수신 될 때 경고를 표시 하는 알림을 만들고 게시 하는 기본 사항을 설명 합니다.In this section we'll walk through how to use local notifications in a Xamarin.iOS application. It will demonstrate the basics of creating and publishing a notification that will pop up an alert when received by the app.

중요

이 섹션의 정보는 iOS 9 및 이전 버전과 관련이 있으며 이전 iOS 버전을 지원 하기 위해 여기에 남아 있습니다.The information in this section pertains to iOS 9 and prior, it has been left here to support older iOS versions. IOS 10 이상에서는 iOS 장치에서 로컬 알림과 원격 알림을 모두 지원 하기 위한 사용자 알림 프레임 워크 가이드 를 참조 하세요.For iOS 10 and later, please see the User Notification Framework guide for supporting both Local and Remote Notification on an iOS device.

연습Walkthrough

로컬 알림을 작동 중인 것으로 표시 하는 간단한 응용 프로그램을 만듭니다.Let create a simple application that will show local notifications in action. 이 응용 프로그램에는 단일 단추가 있습니다.This application will have a single button on it. 단추를 클릭 하면 로컬 알림이 생성 됩니다.When we click on the button, it will create a local notification. 지정 된 기간이 경과 된 후 알림이 표시 됩니다.After the specified time period has elapsed, we will see the notification appear.

  1. Mac용 Visual Studio에서 새 단일 뷰 iOS 솔루션을 만들고 Notifications호출 합니다.In Visual Studio for Mac, create a new Single View iOS solution and call it Notifications.

  2. Main.storyboard 파일을 열고 단추를 뷰로 끌어 옵니다.Open the Main.storyboard file, and drag a button onto the View. 단추 단추의이름을 지정 하 고 제목 추가 알림을지정 합니다.Name the button button, and give it the title Add Notification. 이 시점에서 단추에 몇 가지 제약 조건을 설정할 수도 있습니다.You may also want to set some constraints to the button at this point:

  3. ViewController 클래스를 편집 하 고 ViewDidLoad 메서드에 다음 이벤트 처리기를 추가 합니다.Edit the ViewController class, and add the following event handler to the ViewDidLoad method:

    button.TouchUpInside += (sender, e) =>
    {
        // create the notification
        var notification = new UILocalNotification();
    
        // set the fire date (the date time in which it will fire)
        notification.FireDate = NSDate.FromTimeIntervalSinceNow(60);
    
        // configure the alert
        notification.AlertAction = "View Alert";
        notification.AlertBody = "Your one minute alert has fired!";
    
        // modify the badge
        notification.ApplicationIconBadgeNumber = 1;
    
        // set the sound to be the default sound
        notification.SoundName = UILocalNotification.DefaultSoundName;
    
        // schedule it
        UIApplication.SharedApplication.ScheduleLocalNotification(notification);
    };
    

    이 코드는 소리를 사용 하는 알림을 만들고 아이콘 배지 값을 1로 설정 하 고 사용자에 게 경고를 표시 합니다.This code will create a notification that uses a sound, sets the value of the icon badge to 1, and displays an alert to the user.

  4. 그런 다음 AppDelegate.cs파일을 편집 하 여 먼저 FinishedLaunching 메서드에 다음 코드를 추가 합니다.Next edit the file AppDelegate.cs, first add the following code to the FinishedLaunching method. 장치가 iOS 8을 실행 하 고 있는지 확인 합니다 .이 경우 사용자가 알림을 받을 수 있는 권한을 요청 해야 합니다 .We have checked to see if the device is running iOS 8, if so we are required to ask for the user's permission to receive notifications:

    if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) {
        var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes (
            UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null
        );
    
        application.RegisterUserNotificationSettings (notificationSettings);
    }
    
  5. AppDelegate.cs에도 알림이 수신 될 때 호출 되는 다음 메서드를 추가 합니다.Still in AppDelegate.cs, add the following method which will be called when a notification is received:

    public override void ReceivedLocalNotification(UIApplication application, UILocalNotification notification)
    {
        // show an alert
        UIAlertController okayAlertController = UIAlertController.Create(notification.AlertAction, notification.AlertBody, UIAlertControllerStyle.Alert);
        okayAlertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
    
        UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(okayAlertController, true, null);
    
        // reset our badge
        UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
    }
    
  6. 로컬 알림으로 인해 알림이 시작 된 경우를 처리 해야 합니다.We need to handle the case where the notification was launched because of a local notification. 다음 코드 조각을 포함 하도록 AppDelegate에서 메서드 FinishedLaunching를 편집 합니다.Edit the method FinishedLaunching in the AppDelegate to include the following snippet of code:

    // check for a notification
    
    if (launchOptions != null)
    {
        // check for a local notification
        if (launchOptions.ContainsKey(UIApplication.LaunchOptionsLocalNotificationKey))
        {
            var localNotification = launchOptions[UIApplication.LaunchOptionsLocalNotificationKey] as UILocalNotification;
            if (localNotification != null)
            {
                UIAlertController okayAlertController = UIAlertController.Create(localNotification.AlertAction, localNotification.AlertBody, UIAlertControllerStyle.Alert);
                okayAlertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
    
                Window.RootViewController.PresentViewController(okayAlertController, true, null);
    
                // reset our badge
                UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
            }
        }
    }
    
  7. 마지막으로 응용 프로그램을 실행 합니다.Finally, run the application. IOS 8에서 알림을 허용 하 라는 메시지가 표시 됩니다.On iOS 8 you will be prompted to allow notifications. 확인 을 클릭 한 다음 알림 추가 단추를 클릭 합니다.Click OK and then click the Add notification button. 잠시 후에 다음 스크린샷에 표시 된 것 처럼 경고 대화 상자가 표시 됩니다.After a short pause you should see the alert dialog, as shown in the following screenshots:

요약Summary

이 연습에서는 iOS에서 알림을 만들고 게시 하기 위해 다양 한 API를 사용 하는 방법을 살펴보았습니다.This walkthrough showed how to use the various API's for creating and publishing notifications in iOS. 또한 응용 프로그램 아이콘을 배지로 업데이트 하 여 사용자에 게 몇 가지 응용 프로그램별 피드백을 제공 하는 방법을 보여 주었습니다.It also demonstrated how to update the application icon with a badge to provide some application specific feedback to the user.