从Bluemix推送通知中获取url标记值

时间:2016-09-07 13:57:52

标签: cordova ibm-cloud cordova-plugins ibm-mobile-services ibm-cloud-plugin

我需要使用Bluemix Rest API传递url和通知消息。根据文件

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

上述休息呼叫应发送消息和网址。但是当我试图从通知中解析Json对象时,没有标记发送该URL。

enter image description here

 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值?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

在上面的函数

中添加以下行

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

希望这会对你有所帮助。