【问题标题】:Getting url tag value from Bluemix push notification从 Bluemix 推送通知中获取 url 标记值
【发布时间】:2016-09-07 13:57:52
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    希望这会对您有所帮助。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我认为你误认为我无法从字典中获取信息。但这里的问题是我无法从通知本身获取 url 的键值对。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多