XCode 12.4 日本語化計画:Swift Tutorials
watchOS アプリの作成
セクション 5
watchOS のランドマークのバージョンはほぼ完成しています。この最後のセクションでは、お気に入りの場所の 1 つに近いことを示す通知を受信する時はいつでも、ランドマーク情報を表示する通知インターフェースを作成します。
注意
このセクションでは、通知を受信した後に通知を表示する方法についてのみ説明します。通知を設定または送信する方法については説明していません。
ステップ 1
NotificationView.swift を開き、ランドマーク、タイトル、およびメッセージに関する情報を表示するビューを作成します。
通知の値は nil にすることができるため、プレビューには 2 つのバージョンの通知ビューが表示されます。1 つ目は、データが全く提供されていない場合のデフォルト値を表示し、2 つ目は、指定したタイトル、メッセージ、および場所を表示します。
ステップ 2
NotificationController を開き、landmark,title, および message のプロパティを追加します。
これらのプロパティは着信の通知に関する値を格納します。
ステップ 3
body() メソッドを更新してこれらのプロパティを使用します。
このメソッドは、以前に作成した通知ビューをインスタンス化します。
ステップ 4
LandmarkIndexKey を定義します。
このキーを使用して、通知からランドマークインデックスを抽出します。
ステップ 5
didReceive(_:) メソッドを更新して、通知からのデータを解析します。
このメソッドは、コントローラのプロパティを更新します。このメソッドを呼び出した後、システムはコントローラの body プロパティを無効にし、ナビゲーションビューを更新します。 その後、システムは Apple Watch に通知を表示します。
Apple Watch は通知を受信すると、通知のカテゴリに関連したアプリ内のシーンを探します。
ステップ 6
LandmarksApp.swift に移動し、LandmarkNear カテゴリを使用して WKNotificationScene を追加します。
シーンは watchOS でのみ意味があるため、条件付きコンパイルを追加します。
テストペイロードを構成して LandmarkNear カテゴリを使用し、通知コントローラが期待するデータを渡すようにします。
ステップ 7
PushNotificationPayload.apns ファイルを選択し、title、body、category、そして landmarkIndex のプロパティを更新します。category は必ず LandmarkNear に設定してください。また、Subtitle、WatchKit Simulator Actions、customKey など、チュートリアルで使用されていないキーはすべて削除します。
ペイロード (payload) ファイルは、リモート通知でサーバから送信されるデータをシミュレートします。
ステップ 8
Landmarks-Watch (Notification) scheme (ランドマーク-ウォッチ (通知) スキーム) を選択し、アプリをビルドして実行します。
通知スキームを初めて実行すると、システムは通知を送信する許可を求めます。[Allow(許可)] を選択します。
ステップ 9
権限を付与すると、シミュレータはスクロール可能な通知を表示し、これには、ランドマークアプリを送信者として識別するのに役立つアプリのアイコン、通知ビュー、通知のアクションのボタンが含まれます。
    NotificationView.swift
    NotificationController.swift
    NotificationController.swift
    NotificationController.swift
    NotificationController.swift
    LandmarksApp.swift
    PushNotificationPayload.apns
セクション 1 | セクション 2 | セクション 3 |
セクション 4 | セクション 5 | |
セクション 101 | セクション 102 | セクション 103 |
セクション 104 | セクション 105 |
フレームワーク
WatchOS ターゲットを iOS プロジェクトに追加する際に、どのアプリケーションテンプレートを使用しますか?
Watch App (Watch アプリ) |
Watch App for iOS App (iOS アプリ用 Watch アプリ) |
Game App (ゲームアプリ) |
watchOS で LandmarkDetail ビューを再利用できないのはなぜですか?
CircleImage ビューは watchOS には大きすぎます。 |
watchOS のユーザーインターフェイスは、画面上で最も重要な情報のみを提供し、追加情報にすばやくアクセスできるようにする必要があります。 |
MapView ビューは watchOS では使用できません。 |
watchOS 用の Landmarks アプリのバージョンを作成したら、Landmarks を Mac に導入するという、より大きな目標に目を向けましょう。これまでに学んだすべてに基づいて、iOS、watchOS、macOS 用の SwiftUI アプリをビルドした経験を締めくくります。