Получение значения тега url из push-уведомления Bluemix
Мне нужно передать URL вместе с уведомлением, используя Bluemix Rest API. Согласно документам
{"message": {
"alert": "Notification alert message","url":"test.test.com" }}
Вышеупомянутый остальной вызов должен отправить сообщение и URL. Но когда я попытался проанализировать объект Json из уведомления, не было тега, который отправляет URL.
MFPPush.registerDevice(settings, success, failure);
var notification = function(notif){
alert (JSON.stringify(notif));
};
MFPPush.registerNotificationsCallback(notification);
}}
Выше приведен код, которым я регистрирую уведомление от javascript с помощью приложения Cordova.
Код ниже показывает код AppDelegate на iOS:
-(void)application:(UIApplication *)application
didReceiveRemoteNotification: (NSDictionary *) userInfo fetchCompletionHandler: (void (^) (UIBackgroundFetchResult)) завершение Handler {
[[CDVMFPPush sharedInstance] didReceiveRemoteNotification:userInfo];
}
Когда я поместил оператор журнала для userInfo в AppDelegate, отобразится следующий журнал:
{
aps = {
alert = {
"action-loc-key" = "<null>";
body = test;
};
};
payload = "{\"nid\":\"5a379af\",\"tag\":\"Push.ALL\"}";
url = URL;
}
Это отображается в словаре. Но как получить значение URL из него?
2 ответа
Откройте приложение в Xcode и перейдите к CDVMFPPush.swift
файл и найдите func didReceiveRemoteNotification(notification: NSDictionary?)
Добавьте следующую строку внутри вышеуказанной функции
notif["url"] = notification?.valueForKey("url")
Надеюсь, что это поможет вам.
@Rahul вы должны добавить notif["url"] = notification?.valueForKey("url")
внутри func didReceiveRemoteNotification(notification: NSDictionary?) {}
метод для отображения во всплывающем окне уведомления.