从 Bluemix 推送通知获取 url 标签值

Getting url tag value from Bluemix push notification

我需要使用 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 值呢?

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

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

在上面的函数中添加以下行

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

希望对您有所帮助。