How to enable push notifications for the ASAP SDK via the React Native?

How to enable push notifications for the ASAP SDK via the React Native?

You can configure the ASAP help widget to send notifications to end-users when an agent responds via chat.

Ensure that Push Notifications settings are configured in the ASAP help widget setup page in Zoho Desk.

Ensure that push notifications are implemented in the help widget.

For Android Apps

This step involves two actions: 

    1    Enabling push notifications for the mobile help widget you created in the first doc.(to inlcude the help artcile link)
    2    You can access this setting on the ASAP setup page in Zoho Desk.
    3    Retrieving the FCM key of your app and passing it to the add-on. You can retrieve the token by accessing the following path in Firebase Console: Project SettingsCloud MessagingServer Key.

As part of the second action, you must pass the FCM token in your add-on's Android project. To do this, include the following code snippet in the oncreate() method in the MainApplication.java class.
  1. import com.zohodeskportalapikit.RNZohoDeskPortalSDK;

    RNZohoDeskPortalSDK.setFirebaseId(FirebaseInstanceId.getInstance().getToken());

For iOS Apps

First, create and upload a valid Apple Push Notification Service (APNs) certificate. Then, upload the p12 file of the APNs certificate and its password.

Confirm that the AppDelegate class uses the UNUserNotificationCenterDelegate protocol to enable push notifications. Then, import the following headers into the AppDelegate.h file.
  1. #import <UserNotifications/UserNotifications.h>
    #import <RNZohodeskPortalSdk/RNZohoDeskPortalSDK.h>
Next, fetch the DeviceID value using the application:didRegisterForRemoteNotificationsWithDeviceToken method in the AppDelegate.m file and pass it on to RNZohodeskPortalSdk using the following code snippet:
  1. const unsigned *tokenBytes = [deviceToken bytes];
    NSString *hexToken = [NSString stringWithFormat:@"%08x%08x%08x%08x%08x%08x%08x%08x",
    ntohl(tokenBytes[0]), ntohl(tokenBytes[1]), ntohl(tokenBytes[2]),
    ntohl(tokenBytes[3]), ntohl(tokenBytes[4]), ntohl(tokenBytes[5]),
    ntohl(tokenBytes[6]), ntohl(tokenBytes[7])];
    [RNZohoDeskPortalSDK setDeviceIDForZDPortal:hexToken];

To enable push notifications

To enable push notifications, include the following code snippet in the JavaScript code:
  1. import {ZohoDeskPortalSDK}
    from '@zohocorp/zohodesk-portal-apikit'
    ZohoDeskPortalSDK.enablePush()

To disable push notifications

To enable push notifications, include the following code snippet in the JavaScript code:
  1. import {ZohoDeskPortalSDK}
    from '@zohocorp/zohodesk-portal-apikit'
    ZohoDeskPortalSDK.disablePush()

How to handle push notifications?

For Android Apps

To handle the UI and navigation for push notifications, include the following code snippet in the onMessageReceived()method of the FirebaseMessagingService class. 
  1. import com.zohodeskportalconfiguration.RNZohoDeskPortalConfigurationModule;

    RNZohoDeskPortalConfigurationModule.handleNotification(getApplicationContext(),
    remoteMessage.getData(), icon);

For iOS Apps

To handle the UI and navigation for push notifications, include the following code snippet in the application:didReceiveRemoteNotification method in the AppDelegate.m file.
  1. [RNZohoDeskPortalSDK processRemoteNotification:userInfo];