0

我需要在订阅通知时传递数据,因此,我采用了 Module_07_04_iOSNativePush 应用程序中的示例代码,并将以下代码添加到连接方法(在 ViewController.m 中):

NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:
                     @"userName", @"DoronK",
                     @"password", @"testPwd", nil];
id pushit = [WLPushOptions new];
[pushit addSubscriptionParameter:@"test" :@"Test1"];
[pushit addSubscriptionParameters:dic];
[[WLPush sharedInstance] subscribe:readyToSubscribeListener.alias: pushit :connectListener];

这不会引发任何错误,但是,当我运行示例 PushAdapter 代码并使用此添加到适配器时:

var usub = 'json:'+JSON.stringify(userSubscription);
...
return { result: "Notification sent to user :: " + userId + 
  ", wait " + waittime + " before sending another. UserSub:" + usub};

适配器中的结果是:

{
  "isSuccessful": true,
  "result": "Notification sent to user :: worklight, wait 0 before sending another.    
UserSub:json:{\"userId\":\"worklight\",\"state\":{}}"
}

我希望我通过“状态”下的字典传入的变量,对吗?适配器中是否有其他方法可以获取在 [WLPush subscribe] 调用中传入的参数?

正如您可能知道的那样,我对 Objective C 非常陌生,因此,不要假设对 subscribe 的调用是正确完成的。另外,我正在使用带有 Fix Pack 1 的 Worklight Studio 6。

4

1 回答 1

1

状态将不包含在订阅调用期间传递的参数。您需要先获得设备订阅。设备订阅的选项对象将包含订阅期间传递的参数。

例如。

var deviceSubscriptions=userSubscription.getDeviceSubscriptions(); var usub = 'json:'+JSON.stringify(deviceSubscriptions[0]);

请参考以下信息中心链接

http://pic.dhe.ibm.com/infocenter/wrklight/v6r0m0/topic/com.ibm.worklight.help.doc/apiref/r_method_usersubscription_getdev.html

于 2013-10-21T17:47:20.737 回答