Xamarin에서 watchOS 알림watchOS Notifications in Xamarin

시청 앱은 포함 하는 iOS 앱이 지원 되는 경우 알림을 받을 수 있습니다.Watch apps can receive notifications if the containing iOS app supports them. 기본 제공 알림 처리가 있으므로 아래에 설명 된 추가 알림 지원을 추가할 필요 는 없지만 알림 동작 및 모양을 사용자 지정 하려는 경우에는을 참조 하세요.There is built-in notification handling so you do not need to add the additional notification support described below, however if you wish to customize notification behavior and appearance then read on.

솔루션에서 iOS 앱에 알림 지원을 추가 하는 방법에 대 한 자세한 내용은 Ios 알림 문서를 참조 하세요.Refer to the iOS Notifications doc for more information on adding notification support to the iOS app in your solution.

알림 컨트롤러 만들기Creating Notification Controllers

스토리 보드 알림 컨트롤러에는 트리거를 트리거하는 특수 한 유형의 segue 있습니다.On the storyboard notifications controllers have a special type of segue triggering them. 알림 인터페이스 컨트롤러 를 스토리 보드로 끌면 자동으로 segue이 연결 됩니다.When you drag a new Notification Interface Controller onto a storyboard it will automatically have a segue attached:

알림 segue를 선택 하면 해당 속성을 편집할 수 있습니다.When the notification segue is selected you can edit its properties:

컨트롤러를 사용자 지정한 후에는 WatchKitCatalog에서 다음 예제와 같이 보일 수 있습니다.After you have customized the controller it may look like this example from the WatchKitCatalog:

다음과 같은 두 가지 유형의 알림이 있습니다.There are two types of notification:

  • 시스템에서 정의한 스크롤할 때 스크롤할 때 정적 뷰가 아닙니다.Short-look - non-scrollable static view defined by the system.

  • 사용자가 정의한 길고 스크롤 가능 하 고 사용자 지정이 가능한 뷰입니다.Long-look - scrollable, customizable view defined by you! 더 간단한 정적 버전 및 보다 복잡 한 동적 버전을 지정할 수 있습니다.A simpler, static version and a more complex dynamic version can be specified.

단기 알림 컨트롤러Short-Look Notification Controller

간단한 UI는 앱 아이콘, 앱 이름 및 알림 제목 문자열로 구성 됩니다.The short-look UI consists of just the app icon, app name and the notification title string.

사용자가 알림을 무시 하지 않으면 시스템은 자세한 정보를 제공 하는 긴 모양 알림으로 자동 전환 됩니다.If the user does not ignore the notification, the system will automatically switch to a long-look notification that provides more information.

긴 알림 컨트롤러Long-Look Notification Controller

OS는 여러 요소에 따라 정적 또는 동적 뷰를 표시할지 여부를 결정 합니다.The OS decides whether to display the static or dynamic view based on a number of factors. 정적 인터페이스를 제공 해야 하며 필요에 따라 알림에 대 한 동적 인터페이스를 포함할 수도 있습니다.You must provide a static interface, and can optionally also include a dynamic interface for notifications.

StaticStatic

정적 보기는 간단 하 고 신속 하 게 표시할 수 있어야 합니다.The static view should be simple and quick to display.

동적Dynamic

동적 보기는 더 많은 데이터를 표시 하 고 더 많은 상호 작용을 제공할 수 있습니다.The dynamic view can display more data and provide more interactivity.

알림 생성Generating Notifications

알림은 원격 서버 (Apple Push Notification Service또는 APNS)에서 제공 되거나 iOS 앱에서 로컬로 생성 될 수 있습니다.Notifications can come from a remote server (Apple Push Notifications Service, or APNS) or can be generated locally in the iOS app.

로컬 알림을 생성 하는 방법에 대 한 예제 및 작업 예제는 WatchNotifications 샘플 을 보려면 iOS 알림 연습 을 참조 하세요.Refer to the iOS Notifications walkthrough for an example of how to generate local notifications, and the WatchNotifications sample for a working example.

로컬 알림에는 Apple Watch에 표시 되도록 설정 된 AlertTitle 있어야 합니다. AlertTitle 문자열이 단기 인터페이스에 표시 됩니다.Local notifications must have the AlertTitle set to be displayed on the Apple Watch - the AlertTitle string is displayed in the Short-Look interface. AlertTitleAlertBody 모두 알림 목록에 표시 됩니다. AlertBody는 긴 모양 인터페이스에 표시 됩니다.Both the AlertTitle and AlertBody are displayed in the notifications list; and the AlertBody is displayed in the Long-Look interface.

이 스크린샷에서는 알림 목록에 표시 되는 AlertTitle 및 긴 모양 인터페이스에 표시 되는 AlertBody ( 샘플 코드사용)를 보여 줍니다.This screenshot shows the AlertTitle being displayed in the notifications list, and the AlertBody displayed in the Long-Look interface (using the sample code):

테스트 알림Testing Notifications

알림 (로컬 및 원격 모두)은 장치 에서만 제대로 테스트할 수 있지만 iOS 시뮬레이터의 json 파일을 사용 하 여 시뮬레이션할 수 있습니다.Notifications (both local and remote) can only be properly tested on a device, however they can be simulated using a .json file in the iOS Simulator.

Apple Watch 테스트Testing on Apple Watch

Apple Watch에 대 한 알림을 테스트 하는 경우 Apple 설명서 에는 다음이 명시 되어 있습니다.When testing notifications on an Apple Watch, remember that Apple's documentation states the following:

앱의 로컬 또는 원격 알림 중 하나가 사용자의 iPhone에 도착 하면 iOS는 iPhone 또는 Apple Watch에 해당 알림을 표시할지 여부를 결정 합니다.When one of your app’s local or remote notifications arrives on the user’s iPhone, iOS decides whether to display that notification on the iPhone or on the Apple Watch.

이는 iOS에서 알림이 iPhone에 표시될지 아니면 시계에 표시될지를 결정 한다는 사실입니다.This is alluding to the fact that iOS decides whether a notification will appear on the iPhone or on the Watch. 알림이 수신 될 때 페어링된 iPhone이 활성화 되어 있으면 알림이 iPhone에 표시 되 고 감시로 라우팅되지 않을 수 있습니다.If the paired iPhone is active when a notification is received, the notification is likely to be displayed on the iPhone and not routed to the Watch.

알림이 보기에 표시 되는지 확인 하려면 iPhone 화면을 끄거나 (전원 단추를 한 번 누름) 절전 모드로 전환 합니다.To ensure the notification appears on the watch, turn off the iPhone screen (pressing the power button once) or let it go to sleep. 쌍을 이루는 Watch가 범위 내에 있고, 전원이 손목에서 마모 되는 경우, 해당 알림이 라우팅되고 표시 되 고 감시에 표시 됩니다 (미묘한).If the paired Watch is in range, has power and is being worn on your wrist, the notification will be routed there and appear on the Watch (accompanied by a subtle ).

IOS 시뮬레이터 테스트Testing on the iOS Simulator

IOS 시뮬레이터에서 알림 모드를 테스트할 때 테스트 JSON 페이로드를 제공 해야 합니다.You must provide a test JSON payload when testing notification mode in the iOS Simulator. Mac용 Visual Studio의 사용자 지정 실행 인수 창에서 경로를 설정 합니다.Set the path in the Custom Execution Arguments window in Visual Studio for Mac.

Mac용 Visual Studio은 조사식 확장이 시작 프로젝트로설정 된 경우 추가 옵션을 표시 합니다.Visual Studio for Mac will display additional options when a watch extension is set as the Startup project. 조사식 확장 프로젝트를 마우스 오른쪽 단추로 클릭 하 고 > 사용자 지정 매개 변수를 사용 하 여 실행...을 선택 합니다.Right-click on the watch extension project and choose Run With > Custom Parameters...:

그러면 WatchKit 탭이 포함 된 실행 인수 창이 열립니다. 알림 을 선택 하 고 JSON 페이로드를 제공한 다음 실행 을 눌러 시뮬레이터에서 조사식 앱을 시작 합니다.This opens the Execution Arguments window which contains a WatchKit tab. Select Notification and provide a JSON payload, then press Execute to start the watch app in the simulator:

기본 페이로드 JSON 파일을 사용 하 여 시뮬레이터에서 테스트할 때 기본 알림 컨트롤러는 다음과 같습니다.The default notification controller looks like this when testing on the simulator with the default payload JSON file:

명령줄 을 사용 하 여 iOS 시뮬레이터를 시작할 수도 있습니다.It is also possible to use the command line to start the iOS Simulator.

알림 페이로드 예Example Notification Payload

Watch Kit 카탈로그 샘플에는 예제 페이로드 Json 파일 notificationpayload. json (아래에 나열 되어 있습니다)이 있습니다.In the Watch Kit Catalog sample there is an example payload JSON file NotificationPayload.json (listed below).

{
    "aps": {
        "alert": "Test message content",
        "title": "Optional title",
        "category": "myCategory"
        },

        "WatchKit Simulator Actions": [
        {
            "title": "First Button",
            "identifier": "firstButtonAction"
        }
        ],

        "customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to choose between them in when selecting to debug the notification interface of your Watch App."
    }