WLPush订阅没有传递WLPushOptions

时间:2013-11-05 01:49:37

标签: ibm-mobilefirst worklight-adapters worklight-server

我有一个原生应用程序正在订阅/取消订阅并成功推送通知,但是,API似乎没有传递我正在使用的WLPushOptions对象。

我的对象代码中的调用:

NSLog(@"Trying to subscribe ...");
id options = [WLPushOptions new];
[options addSubscriptionParameter:@"param3" :@"Testing3"];

NSLog(@"Connecting to server and initializing push notification … ");

ReadyToSubscribeListener *readyToSubscribeListener = [[ReadyToSubscribeListener alloc] initWithContext:ctx];
readyToSubscribeListener.alias = @"iOSPushAlias";
readyToSubscribeListener.adapterName = @"PushAdapter";
readyToSubscribeListener.eventSourceName = @"PushEventSource";
NSLog(@"Creating subscribe listener...");

MySubscribeListener *mySubscribeListener = [[MySubscribeListener alloc]      initWithContext:ctx];    
[[WLPush sharedInstance]subscribe:@"iOSPushAlias" :options :mySubscribeListener];

NSLog(@"Finished subscribe.");

日志:

Nov  4 20:29:44 Davids-iPhone-5 xxxx [771] <Warning>: Trying to subscribe ...
Nov  4 20:29:44 Davids-iPhone-5 xxxx [771] <Warning>:     [WorklightNativeExtensionTemplateiOS] Connecting to server and initializing push notification ... 
Nov  4 20:29:44 Davids-iPhone-5 xxxx [771] <Warning>: Creating subscribe listener...
Nov  4 20:29:44 Davids-iPhone-5 xxxx [771] <Warning>: Finished subscribe.
Nov  4 20:29:44 Davids-iPhone-5 xxxx [771] <Warning>: [INFO] Successfully subscribed to alias iOSPushAlias

然后,在HSQL数据库日志中(使用本地Worklight Developer客户端):

DELETE FROM NOTIFICATION_DEVICE WHERE ID=91
INSERT INTO NOTIFICATION_DEVICE VALUES(91,'iOSPushAlias','MYAPPNAME-iOSnative-1.0','XXXXXXXX-0C65-4BEF-BE3E-098B21BDFCEF','{}','Apple','XXXXXXXX324CA75650BB85853B946F3D1D9881E5D2E4F3E02268AA6CAA3254B3','XXXXXXXXXX-debug 1.2.0 (iPhone; iPhone OS 7.0.2; en_US)',91)
COMMIT

我已经删除了应用和订阅ID。

正如您在INSERT语句中看到的那样,第五个字段(NOTIFICATION_DEVICE表中的OPTIONS字段)正在插入一个空的JSON对象,我在其中传入了密钥“param3”并且值为“Testing3”,因此,我期望它是:

{'param3':'Testing3'}

这似乎是本机iOS API文档对addSubscriptionParameter方法的期望(NSString参数)。我对Objective C很新,但是,这对我来说是正确的。

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

这是一个缺陷,已被记录。幸运的是,有一个简单的解决方法:

WLPushOptions *options = [WLPushOptions new];
options.parameters = [NSMutableDictionary new];
[options addSubscriptionParameter:@"param3" :@"Testing3"];