Получение значения тега 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?) {} метод для отображения во всплывающем окне уведомления.

Другие вопросы по тегам