iOS向けどこでもサポートSDKのプッシュ通知の設定

iOS向けどこでもサポートSDKのプッシュ通知の設定

どこでもサポートSDK(ソフトウェア開発キット)では、担当者によるチャットの返信時に利用者に対してどこでもサポートのウィジェットで通知を送信するように設定できます。通知を設定するには、.p12形式のAPNs(Apple Push Notification service:Apple プッシュ通知サービス)証明書が必要です。

APNs証明書の.p12ファイルを作成するには、以下の手順を実施します。

    1.    Apple Developer(Appleの開発者向けポータル)でAPNs証明書を作成し、ダウンロードします。
    2.    証明書をダブルクリックします。ダブルクリックすると、証明書がキーチェーンアクセスのアプリ内に自動でインポートされます。
    3.    キーチェーンアクセスのアプリを起動し、証明書を開きます。証明書に対応するキーが表示されます。
    4.    証明書とキーの両方を選択して、右クリックします。メニューが表示されます。
    5.    エクスポートのためのメニューをクリックします。保存先に関する設定画面が表示されます。
    6.    ファイル形式のドロップダウンで[.p12]が選択されていることを確認し、[保存]をクリックします。
    7.    ファイルにアクセスするためのパスワードを入力し、[OK]をクリックします。証明書が.p12ファイルとしてエクスポートされます。

次に、Zoho Deskのどこでもサポートの設定画面でプッシュ通知を有効にします。有効にするには、どこでもサポートのウィジェットの設定ページに移動し、作成した.p12ファイルをアップロードしてパスワードを入力します。

次に、「AppDelegate」クラス内の「application: the didRegisterForRemoteNotificationsWithDeviceToken」メソッドで「enablePushNotification」APIを実行できるように、ウィジェットを設定します。

ウィジェットを設定するには、以下のメソッドをアプリのコードに追加します。

Swift

  1. func application
    (_ application: UIApplication,
    didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
    {
    let token = deviceToken.reduce
    ("", {$0 + String(format: "%02X", $1)}).uppercased()
    ZohoDeskPortalSDK.enablePushNotification
    (deviceToken:token, mode: .production)
    }

Objective-C

  1. - (void)application:(UIApplication *)application
    didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
    {
       NSString * token = [[[[deviceToken description]
       stringByReplacingOccurrencesOfString: @"<" withString: @""]
       stringByReplacingOccurrencesOfString: @">" withString: @""]
       stringByReplacingOccurrencesOfString: @" " withString: @""];
       [ZohoDeskPortalSDK enablePushNotificationWithDeviceToken:<#(NSString * _Nonnull)#> isTestDevice:<#(BOOL)#> mode:<#(enum APNSmode)#>];
    }
開発モードに切り替えると、通知が正しく送信されるかどうかを検証することができます。開発モードに切り替えるには、上記のコードの「.production」を「.sandbox」に変更します。開発モードに切り替えた場合は、アプリの公開前に、必ず本番環境モードに戻してください。
次に、プッシュ通知が受信された際に「AppDelegate」クラスの「didReceiveRemoteNotification」メソッドが自動で呼び出されるように、どこでもサポートSDK(ソフトウェア開発キット)を設定する必要があります。また、その後、どこでもサポートSDK(ソフトウェア開発キット)で受信された通知が適切に処理されるようにするため、「processRemoteNotification」メソッドの呼び出しが必要です。このメソッドを呼び出すには、以下のメソッドを追加します。

Swift

  1. import ZohoDeskPortalConfiguration
    ...
    func application(_ application: UIApplication,
    didReceiveRemoteNotification userInfo: [AnyHashable : Any])
    {
       ZDPortalConfiguration.processRemoteNotification(userInfo: userInfo)
    }

Objective-C

  1. @import ZohoDeskPortalConfiguration;
    ...
    - (void)application:(UIApplication *)application
    didReceiveRemoteNotification:(NSDictionary *)userInfo
    fetchCompletionHandler:(void (^)
    (UIBackgroundFetchResult))completionHandler
    {
    [ZDPortalConfiguration processRemoteNotificationWithUserInfo:userInfo];
    }