1

我需要使用 Bluemix Rest API 将 URL 与通知消息一起传递。根据文档

{"message": {
"alert": "Notification alert message","url":"test.test.com" }}

上面的 rest 调用应该发送消息和 url。但是当我尝试从通知中解析 Json 对象时,没有发送 url 的标签。

在此处输入图像描述

 MFPPush.registerDevice(settings, success, failure);
 var notification = function(notif){
     alert (JSON.stringify(notif));

 };
 MFPPush.registerNotificationsCallback(notification);
    }}

以上是我使用 Cordova 应用程序从 javascript 注册通知的代码。

下面的代码显示了 iOS 上的 AppDelegate 代码:

-(void)application:(UIApplication *)application

didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {

[[CDVMFPPush sharedInstance] didReceiveRemoteNotification:userInfo];

}

当我在 AppDelegate 中放置 userInfo 的日志语句时,将显示以下日志:

{
    aps =     {
        alert =         {
            "action-loc-key" = "<null>";
            body = test;
        };
    };
    payload = "{\"nid\":\"5a379af\",\"tag\":\"Push.ALL\"}";
    url = URL;
}

它显示在字典中。但是如何从中获取 url 值呢?

4

2 回答 2

1

@Rahul,您必须notif["url"] = notification?.valueForKey("url")func didReceiveRemoteNotification(notification: NSDictionary?) {}方法内添加才能在通知弹出窗口中显示。

于 2016-09-08T10:35:43.133 回答
1

在 Xcode 中打开应用程序并转到CDVMFPPush.swift文件并找到func didReceiveRemoteNotification(notification: NSDictionary?)

在上述函数中添加以下行

notif["url"] = notification?.valueForKey("url")

希望这会帮助你。

于 2016-09-08T17:43:47.710 回答