問題
プッシュテンプレート(カルーセル画像、背景色、フォント色など)は、通知コンテンツ拡張が実装されていない場合、プッシュ通知で正しく表示されません。
命令
次の手順を実行します。
-
通知コンテンツ拡張ターゲットを作成します。
-
拡張ターゲットの名前を付けてください。
拡張ターゲットの名前を選択してください。
Swift
は、Objective-C プロジェクトともシームレスに動作するため、おすすめの言語です。
-
Notification Content Extensionの
Signing & Capabilities
設定に
AppGroupId
を追加します。
-
通知コンテンツ拡張の最小デプロイメントiOSバージョンをメインアプリのiOSバージョンに合わせて設定します。
-
拡張ターゲットの名前を付けてください。
拡張ターゲットの名前を選択してください。
Swift
は、Objective-C プロジェクトともシームレスに動作するため、おすすめの言語です。
-
MORichNotificationフレームワークを通知コンテンツ拡張ターゲットに統合します。
-
Podfile に Notification Content Extension を別のターゲットとして追加し、インストールします。
MORichNotification
フレームワーク。
target 'MoEngageDemo' do use_frameworks! pod 'MoEngage-iOS-SDK' end target 'MoEngageNotificationService' do use_frameworks! #use use_frameworks only if included in main target as in above scenario pod 'MoEngageRichNotification' end target 'MoegageRichContent" do use_frameworks! #use use_frameworks only if included in main target as in above scenario pod 'MoEngageRichNotification' end
-
Podfile に Notification Content Extension を別のターゲットとして追加し、インストールします。
MORichNotification
フレームワーク。
-
コードの変更は
NotificationViewController.swift
ファイル。
import UIKit import UserNotifications import UserNotificationsUI import MoEngageRichNotification class NotificationViewController: UIViewController, UNNotificationContentExtension { @IBOutlet var label: UILabel? override func viewDidLoad() { super.viewDidLoad() MoEngageSDKRichNotification.setAppGroupID("group.com.XXXXXXXXXXXXXXXX") } func didReceive(_ notification: UNNotification) { if #available(iOSApplicationExtension 12.0, *) { MoEngageSDKRichNotification.addPushTemplate(toController: self, withNotification: notification) } else { // Fallback on earlier versions } } }
-
MainInterface.storyboard
をコンテンツ拡張で選択し、デフォルトのラベルを削除し、ビューの背景色を透明に設定します。
-
Info.plistの変更:
3469817 -
Main App Targetのビルドフェーズを確認してください。
-
Embed App Extensions/Embed Foundation Extensions では、
インストール時のみコピー
が選択されていないことを確認してください。
-
Embed App Extensions/Embed Foundation Extensions では、
インストール時のみコピー
が選択されていないことを確認してください。
-
設定全体で一貫した appGroupId を確保してください。
- プロジェクト内のすべてのスキームおよび構成(例えば、Debug/Release/QA/UAT)で appGroupId が一貫していることを確認してください。
-
ビルド構成を整列させる。
- プロジェクトを実行またはアーカイブする際は、メインターゲット、通知サービス拡張、および通知コンテンツ拡張ターゲットのビルド構成が同じスキーム/構成を指していることを確認してください。