#react-native #clevertap
#react-native #clevertap
Вопрос:
В моем приложении react-native я использую clevertap для отправки push-уведомлений. Я получаю уведомления на мобильном устройстве, но не могу прочитать его полезную нагрузку.
Ответ №1:
Для обработки полезной нагрузки push-уведомлений iOS и ответа пользователя на уведомление iOS предоставляет метод делегирования
Центр пользовательских уведомлений: получен ответ на запрос: с обработчиком завершений:
Вы можете реализовать то же самое, выполнив следующие шаги:
-
Перейдите к вашему файлу AppDelegate > И платформе
#import <UserNotifications/UserNotifications.h>
-
Кроме того, добавьте UNUserNotificationCenterDelegate
@interface AppDelegate () <UIApplicationDelegate,UNUserNotificationCenterDelegate>
-
Обработка методов делегирования для пользовательских уведомлений
- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler{
NSLog(@"User Info : %@",response.notification.request.content.userInfo); //for getting response payload data
completionHandler();
}
Кроме того, если вы хотите определить, отправлено ли уведомление из CleverTap, вызовите этот метод:
- (BOOL)isCleverTapNotification:(NSDictionary *)payload;
Вы должны вручную вызвать SDK следующим образом / Добавить следующий код CleverTap в свой AppDelegate
- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler {
if ([[CleverTap sharedInstance] isCleverTapNotification:response.notification.request.content.userInfo]) {
...
}
completionHandler();
}
Надеюсь, это поможет. Дополнительные вопросы вы можете задать на https://community.clevertap.com /
Комментарии:
1. есть идеи по обработке полезной нагрузки в Android?
Ответ №2:
Вы можете отображать Push-уведомления с помощью CleverTap двумя различными способами.
Способ 1: разрешить CleverTap обрабатывать Push-уведомления напрямую. Для этого просто укажите следующий код в вашем файле манифеста
<service
android:name="com.clevertap.android.sdk.FcmTokenListenerService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
<service
android:name="com.clevertap.android.sdk.FcmMessageListenerService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
Способ 2: Обрабатывайте полезную нагрузку с вашей стороны. Вы можете сделать это следующим образом.
Шаг 1. Добавьте пользовательский прослушиватель сообщений FCM в свой файл манифеста.
<service
android:name="com.your.package.MyFcmMessageListenerService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
Шаг 2. В вашей службе прослушивания сообщений FCM вы получите полезную нагрузку, которую вы можете обработать следующим образом.
public class MyFcmMessageListenerService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage message){
try {
if (message.getData().size() > 0) {
Bundle extras = new Bundle();
for (Map.Entry<String, String> entry : message.getData().entrySet()) {
extras.putString(entry.getKey(), entry.getValue());
}
NotificationInfo info = CleverTapAPI.getNotificationInfo(extras); //info will get the payload.
if (info.fromCleverTap) {
CleverTapAPI.createNotification(getApplicationContext(), extras);
} else {
// not from CleverTap handle yourself or pass to another provider
}
}
} catch (Throwable t) {
Log.d("MYFCMLIST", "Error parsing FCM message", t);
}
}
}
Надеюсь, это поможет. Для получения дополнительных вопросов вы можете написать свой запрос на support@clevertap.com