Skip to content


iOS 10リッチプッシュ通知

iOS 10では、画像、GIF、動画を含むプッシュ通知を送信する機能が導入されました。この機能を有効にするには、クライアントがService Extensionを作成する必要があります。これは、プッシュペイロードが表示される前に変更を可能にする新しいタイプの拡張機能です。

サービス拡張の作成

Notification Service Extensionを作成するには、XcodeでFile > New > Targetに移動し、Notification Service Extensionを選択します。

リッチ通知用のNotification Service Extensionを作成するXcodeのターゲット選択画面

アプリケーションに拡張機能を埋め込むようにEmbed In Applicationが設定されていることを確認します。

サービス拡張の設定

Notification Service Extensionは、アプリにバンドルされる独自のバイナリです。Apple Developer Portalで独自のアプリIDとプロビジョニングプロファイルを使用して設定する必要があります。

Notification Service ExtensionのバンドルIDは、メインアプリターゲットのバンドルIDとは異なる必要があります。たとえば、アプリのバンドルIDがcom.company.appnameの場合、サービス拡張にはcom.company.appname.AppNameServiceExtensionを使用できます。

Brazeと連携するようにサービス拡張を設定する

Brazeは、リッチコンテンツの設定、ダウンロード、表示に使用するabキーの下にあるAPNsペイロードで添付ペイロードを送信します。以下に例を示します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
  "ab" :
    {
    ...

    "att" :
      {
       "url" : "http://mysite.com/myimage.jpg",
       "type" : "jpg"
       }
    },
  "aps" :
    {
    ...
    }
}

関連するペイロード値は次のとおりです。

1
2
3
4
5
6
7
8
9
10
11
// The Braze dictionary key
static NSString *const AppboyAPNSDictionaryKey = @"ab";

// The attachment dictionary
static NSString *const AppboyAPNSDictionaryAttachmentKey = @"att";

// The attachment URL
static NSString *const AppboyAPNSDictionaryAttachmentURLKey = @"url";

// The type of the attachment - a suffix for the file you save
static NSString *const AppboyAPNSDictionaryAttachmentTypeKey = @"type";

Brazeペイロードで手動でプッシュ通知を表示するには、AppboyAPNSDictionaryAttachmentURLKeyの下の値からコンテンツをダウンロードし、AppboyAPNSDictionaryAttachmentTypeKeyキーの下に格納されているファイルタイプのファイルとして保存し、通知の添付ファイルに追加します。

サンプルコード

サービス拡張は、Objective-CまたはSwiftで記述できます。

Objective-Cサンプルコードを使用するには、Notification Service Extensionターゲットの自動生成されたNotificationService.mの内容をAppboyのNotificationService.mの内容に置き換えます。

Swiftサンプルコードを使用するには、Notification Service Extensionターゲットの自動生成されたNotificationService.swiftの内容をAppboyのNotificationService.swiftの内容に置き換えます。

ダッシュボードでリッチプッシュ通知を作成する

Brazeダッシュボードでリッチプッシュ通知を作成するには、iOSプッシュを作成し、画像またはGIFを添付するか、画像、GIF、または動画をホストするURLを指定します。アセットはプッシュ通知の受信時にダウンロードされるため、コンテンツをホスティングしている場合は、リクエストが大規模に同期的に急増することを想定する必要があります。

サポートされているファイルタイプとサイズのリストについては、unnotificationattachmentを参照してください。

New Stuff!