iOSプッシュ通知でプッシュテンプレートの問題を回避する方法 (SDKバージョン9.x.x) 通知コンテンツ拡張が実装されていない場合

問題

プッシュテンプレート(カルーセル画像、背景色、フォント色など)は、通知コンテンツ拡張が実装されていない場合、プッシュ通知で正しく表示されません。

命令

次の手順を実行します。

  1. 通知コンテンツ拡張ターゲットを作成します。 NCE.png
    • 拡張ターゲットの名前を付けてください。 拡張ターゲットの名前を選択してください。 Swift は、Objective-C プロジェクトともシームレスに動作するため、おすすめの言語です。 name swift.png
    • Notification Content Extensionの Signing & Capabilities 設定に AppGroupId を追加します。 signing.png
    • 通知コンテンツ拡張の最小デプロイメントiOSバージョンをメインアプリのiOSバージョンに合わせて設定します。 deployment.png
  2. 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
  3. コードの変更は 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
            }
        }
    }
  4. MainInterface.storyboard をコンテンツ拡張で選択し、デフォルトのラベルを削除し、ビューの背景色を透明に設定します。 main.png
  5. Info.plistの変更:
    Swift
    3469817
    NSExtension.png
  6. Main App Targetのビルドフェーズを確認してください。
    • Embed App Extensions/Embed Foundation Extensions では、 インストール時のみコピー が選択されていないことを確認してください。 copy only.png
  7. 設定全体で一貫した appGroupId を確保してください。

    • プロジェクト内のすべてのスキームおよび構成(例えば、Debug/Release/QA/UAT)で appGroupId が一貫していることを確認してください。
  8. ビルド構成を整列させる。
    • プロジェクトを実行またはアーカイブする際は、メインターゲット、通知サービス拡張、および通知コンテンツ拡張ターゲットのビルド構成が同じスキーム/構成を指していることを確認してください。

    debug.png

    ターゲット.png

    duplicate.png

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

How can we improve this article?