1

サブスクライブ/サブスクライブ解除し、通知を正常にプッシュするネイティブ アプリがありますが、使用している WLPushOptions オブジェクトに API が渡されないようです。

私のobj cコードでの呼び出し:

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 db ログで (ローカルの 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 を X アウトしました。

INSERT ステートメントでわかるように、5 番目のフィールド (NOTIFICATION_DEVICE テーブルの OPTIONS フィールド) は、キー「param3」と値「Testing3」を渡した空の JSON オブジェクトを挿入しています。することが:

{'param3':'Testing3'}

これは、ネイティブ iOS API ドキュメントが addSubscriptionParameter メソッドに期待するもの (NSString パラメータ) のようです。私はObjective Cに非常に慣れていませんが、これは私には正しいようです。

私が間違っていることを知っている人はいますか?

4

1 に答える 1

1

これは欠陥であり、ログに記録されています。幸いなことに、簡単な回避策があります。

WLPushOptions *options = [WLPushOptions new];
options.parameters = [NSMutableDictionary new];
[options addSubscriptionParameter:@"param3" :@"Testing3"];
于 2013-11-05T23:58:17.007 に答える