iOS用のCordovaプラグインを開発中です。私の 'plugin.js'にはメソッドがあります。私のアプリケーション(javascript)から一度だけ呼び出すと、ネイティブの部分からコールバックを聞き始めます。このメソッドを呼び出すとき、Objective-CクラスにcallbackIdを格納しておき、後でコールバックを送信したい(複数のコールバックが可能です)ので、保存されたcallbackIdを使ってCDVPluginResultを送信し、 'keepCallback'をtrueに設定します。しかしコールバックは決して 'plugin.js'には到着しません。そのため、アプリにはありません。Cordovaプラグインコールバックが呼び出されていない(iOS)
Objective-Cの方法1(すなわちリスナー部分です):
- (void)listenForNews:(CDVInvokedUrlCommand *)command
{
self.storedCallbackId = command.callbackId;
...
Objective-Cの方法2(すなわち、非同期複数回呼び出されているメソッド'S)
- (void)onNewsReceived
{
CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
[pluginResult setKeepCallbackAsBool:YES];
[self.commandDelegate sendPluginResult:pluginResult callbackId:self.storedCallbackId];
Iがき'storedCallbackId'が適切に格納されて読み込まれていることを既に確認しました。
アイデア?
おかげで@DaveAlden。私たちは問題を解決することができました。最後に、プラグインクラスのインスタンスが複数あるため、Cordovaにコールバックが失われてしまいました(もちろん)。 – Dani