コンテンツにスキップ

高度な

通知グループを作成する

通知センターに表示される通知をグループ化できます。同じイベントからの通知をグループ化して折りたたむことができます。折りたたまれた通知グループはユーザーによって再度展開でき、通知グループの各メンバーには個別にアクセスできます。

通知グループはthe Hive コンソール > 通知 > プッシュ キャンペーン > キャンペーン 登録 > オプション > グループキーで作成できます。グループキーを使用するに変更し、グループキーの値を追加します。Hive コンソールでグループを作成した後、groupIdを使用してローカルプッシュまたはリモートプッシュを送信する際に通知グループを適用できます。通知グループが適用されると、通知は以下のようにグループごとに折りたたまれて表示されます。

Android
iOS

iOS 10 高度な通知

AppleがiOS 10にUserNotifications.frameworkを追加したことで、このフレームワークを使用して通知に画像やビデオクリップを添付できるようになりました。

JPG(画像)
GIF(画像)
MP4(ビデオクリップ)

システム要件

  • Xcode 8.0と利用可能なMacOSのバージョン、およびiOS 10のインストールが可能なデバイスが必要です。
  • バージョンが低いOSでは、拡張機能が適用されていても、同じ通知が受信されます。

  • iOS 10に対応したデバイス

Note

iOS 10.1 およびそれ以下のバージョンでは、欠陥のあるOSのためにメディアを使用して拡張機能を実行する際に問題が発生することがあります。その場合、拡張機能のデプロイメントターゲットを10.2に設定し、一般的な通知タイプを受信するために10.1およびそれ以下のバージョンのOSに対応するように実装してください。

実行プロセス

この関数は、通知サービス拡張("拡張")を利用して実行されますiOS

通知サービス拡張は、リモート通知がユーザーに配信される前にペイロードを変更できるアプリ拡張の一つです。他のアプリのプロセス(UIや機能)をコンテキストを変更することなく使用するための技術です。

詳細については、こちらをご覧ください。

  • 拡張機能を適用したリモート通知の送信プロセス

ファイル容量とタイプ制限

メディアファイルを添付する容量は制限されています。これに関する詳細は、UNNotificationAttachmentを参照してください。

Warning

ユーザーがAVAudioSessionを使用している間に、Youtubeやさまざまなモバイルゲーム(例:Summoners War、Dragon Blaze、Chain Strike)からプッシュサービスによって送信された音声を送信すると、ホーム画面(Springboard)が再起動します。iOSのバージョン、デバイスタイプ、Hive SDKに関係なく、Appleの内部システムがクラッシュすることが示されています。
このエラーは2018年12月20日にAppleに報告されているため、メディア通知を通じた音声送信機能の使用を必ず停止してください

タイプ フォーマット 容量
オーディオ WAV, MP3, MP4(オーディオ) 5MB
画像 JPG, JPEG, PNG, GIF 10MB
ビデオ MP4, AVI 50MB
  • ネットワークの問題によりタイムアウトが発生した場合、ユーザーはメディアなしの一般的な通知を受け取ります。
  • 低速ネットワークでは、ダウンロードに最大10分かかる場合がありますので、現地のネットワーク状況を考慮して、適切な容量のメディアを使用するようにしてください。

実装

メディアをダウンロードし、通知オブジェクトを再構成し、ユーザーに配信するには、いくつかの設定とソースコードの追加が必要です。

Note

通知サービス拡張はライブラリやフレームワークに含めることはできません。したがって、拡張機能を使用するには、Hive SDKによって提供されたガイドに基づいて設定する必要があります。

拡張機能の追加

この機能を使用するには、通知サービス拡張をプロジェクトに追加し、クラスを手動で追加または上書きすることなく、新しいターゲットをプロジェクトに追加する必要があります。

プロジェクトにターゲットを追加すると、テンプレートが自動的に生成されます。

1. プロジェクト設定で、ターゲットを追加するためにプラス型のボタン(下の赤い四角)をクリックします。

2. 通知サービス拡張を選択し、次へをクリックします。
(通知サービス拡張は、Xcode 8以降のプロジェクトにターゲットとして追加できます)

3. 入力 製品名.

4. 次のようなページがポップアップしたら、Activateボタンをクリックしてください。
拡張機能は現在のプロジェクトに自動的に埋め込まれ、ビルドのためのスキームが追加されます。

5. 追加された拡張機能一般タブで確認します。

6. プロジェクトに新しいテンプレートクラスNotificationServiceが追加されました。

7. 追加した拡張機能デプロイメントターゲットを10.2以降に設定します。

Hiveextensions フレームワークの追加

HIVEExtension.frameworkは、Hive SDKによって提供され、メディアのダウンロードを簡単にします。
HIVEExtensionFrameworkを追加するには:

1. フレームワークを手動で追加します。

  • プロジェクトにHIVEExtension.frameworkを追加します。

  • ページが以下のようにポップアップしたら、追加された拡張機能の対象を確認し、**完了**ボタンをクリックしてください。

2. フレームワーク検索パスを設定します。

HIVEExtension.frameworkの保存ルートを**Xcodeproj > 生成されたExtension Targetを選択 > Build Settings > Framework Search Paths**に追加します。

3. フレームワークのステータスを設定します。

iOS 10.2およびそれ以下をサポートするゲームでは、HIVEExtensions.frameworkをオプションとして設定します。

  • Xcodeproj > 生成された拡張ターゲットを選択 > 一般 > リンクされたフレームワークとライブラリ

フレームワークの適用

NotificationService.mにフレームワークを次のサンプルコードのようにインポートします。

テンプレート内のメソッドからHIVEExtensions.frameworkによって提供されたメソッドを呼び出すように実装し、その後メソッド内の初期テンプレートコードを削除してください

#import <HIVEExtensions/HIVEExtensions.h>

- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
[HIVENotificationService didReceiveNotificationRequest:request withContentHandler:contentHandler];
}

- (void)serviceExtensionTimeWillExpire {
[HIVENotificationService serviceExtensionTimeWillExpire];
}

メディアアプリケーションに関するノート

送信時間と受信時間の違い

拡張機能がすべてのタスクを完了した後、ユーザーへの通知の送信は、送信時間と受信時間の不一致を引き起こす可能性があります。クライアントはサーバーが送信した時間を表示します。

例えば、15:00に通知を送信し、ダウンロードが15:05に完了した場合、通知の到着時間は15:00です。

デバイスの容量

プッシュサービスを介して配信されるメディアは、ユーザーのデバイスに保存され、プッシュ通知によって公開されます。受信したメディアは内部キャッシュメモリに保存され、ユーザーのデバイスの内部容量を占有します。

ユーザー デバイスの内部ストレージ容量が不足しているとき、OS はキャッシュ データ スペースからいくつかのデータを削除します。

ユーザーのモバイルデータを使用する

メディアのダウンロードはユーザーのモバイルデータを使用します。メディアはプッシュ通知を介して配信され、ダウンロードはユーザーの同意なしに進行するため、ダウンロードに対してデータ使用料が発生する可能性があります。

ユーザーがプッシュサービスを介して音声または動画ファイルを受信した場合、ダウンロードする前に各ユーザーのネットワーク接続状況を確認してください。ユーザーがWi-Fiを有効にしていない場合、ダウンロードを防ぐためにメディアなしでプッシュを公開します。

プッシュ通知を通じて配信されるメディアの種類は、メディアのURLの末尾に指定された拡張子で確認され、[ファイル容量と種類の制限]項目に指定された拡張子のみが公開されます。

転送されたURL Wi-Fi LTE/3G
http://xxx/notimovie.mp4 ダウンロード後にプッシュ通知でメディアを常に表示する 動画ファイルの拡張子が指定されているため、ダウンロードなしでプッシュ通知でメディアを表示する (.mp4)
http://xxx/notimovie ダウンロード後にプッシュ通知でメディアを常に表示する 音声またはメディアファイルではないため、ダウンロード後にプッシュ通知でメディアを表示する
http://xxx/notisound.wav ダウンロード後にプッシュ通知でメディアを常に表示する 音声ファイルの拡張子が指定されているため、ダウンロードなしでプッシュ通知でメディアを表示する (.wav)
http://xxx/notiimage.jpg ダウンロード後にプッシュ通知でメディアを常に表示する 音声またはメディアファイルではないため、ダウンロード後にプッシュ通知でメディアを表示する

アプリのトランスポートセキュリティ設定

一般的にAppleのポリシーは、すべてのアプリでサーバー通信が処理されたhttpsを許可することです。このポリシーは、通知を通じて受信するURLに影響を与えます。httpを使用したい場合は、App Transport Security("ATS")の例外を設定する必要があります。 プッシュ通知を介して受信するURLhttpを利用するために、拡張機能でATSの例外を構成します。アプリケーションがすでにATSの例外を処理していてもです。

ビットコードエラーのトラブルシューティング方法

追加された拡張機能の設定でビットコードが有効になっている場合、次のようなエラーが発生する可能性があります。エラーが発生した場合は、set Xcodeproj > Select the generated Extension Target > Build Settings > Enable BitcodeNo に設定してください。

Unityでのメディア送信エラーの場合

Hub connection error Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.com2us.hivesdk.normal.freefull.apple.global.ios.universal.NotificationServiceExtension" UserInfo={NSDebugDescription=connection to service named com.com2us.hivesdk.normal.freefull.apple.global.ios.universal.NotificationServiceExtension}

時々、メディア伝送中にUnityでエラーが発生し、上記のエラーログが表示されます。この場合、生成されたExtension Targetのアーキテクチャが、armv7arm64の両方の値を含んでいるか確認してください。