JavaScriptのハンドラにサイレントなiOSプッシュ通知を送信しようとしているReactネイティブアプリがあります。アプリがバックグラウンドにあるときにネイティブで反応するサイレントiOSプッシュ通知
私が見ている動作は、のAppDelegate
の機能が呼び出されますが、アプリケーションがフォアグラウンドにあるか、最近閉じられていない限り、JavaScriptのハンドラは呼び出されません。
私が混乱していることは、明らかにアプリケーションが目覚めて、それがdidReceiveRemoteNotification
関数を呼び出すことですが、[RCTPushNotificationManager didReceiveRemoteNotification:notification]
への呼び出しは何もしていないようです。
また、通知を受け取った後にアプリを開くと、その時点でReact Nativeハンドラが呼び出されているのが見えます。
マイdidReceiveRemoteNotification
関数は次のようになります。
componentDidMount() {
AppState.addEventListener('change', this.handleAppStateChange);
PushNotificationIOS.addEventListener('notification', (notification) => {
console.log("notification recieved");
})
}
handleAppStateChange(currentAppState) {
console.log(currentAppState);
}
私は次のようにAWS SNSを利用してプッシュ通知を送信しています:私の私はこれを持っているネイティブアプリに反応のルートコンポーネント
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)notification
{
NSLog(@"didReceiveRemoteNotification");
[RCTPushNotificationManager didReceiveRemoteNotification:notification];
}
メッセージ:
{
"APNS_SANDBOX":"{\"aps\":{\"content-available\":\"1\"}}"
}
ここはXCodeからのログです。
2016-04-20 10:38:01.255 [info][tid:com.facebook.React.JavaScript] inactive
2016-04-20 10:38:01.986 [info][tid:com.facebook.React.JavaScript] background
2016-04-20 10:38:17.279 test[4056:1383261] didReceiveRemoteNotification
2016-04-20 10:38:17.284 [info][tid:com.facebook.React.JavaScript] notification recieved
2016-04-20 10:44:56.330 test[4056:1383261] didReceiveRemoteNotification
2016-04-20 10:44:56.332 [info][tid:com.facebook.React.JavaScript] notification recieved
2016-04-20 10:46:07.091 test[4056:1383261] didReceiveRemoteNotification
2016-04-20 10:49:30.039 [info][tid:com.facebook.React.JavaScript] notification recieved
2016-04-20 10:49:30.639 [info][tid:com.facebook.React.JavaScript] active
このログには、3つのプッシュ通知が送信されます。 10時38分と10時44分に受け取ったものは両方ともJavaScriptを正しく呼び出しました。 しかし、10時46分に受け取ったものは、10時49分にアプリを開くまで、JavaScriptでハンドラを呼び出さなかった。
Reactネイティブコードへの呼び出しがアプリが実行されていなくても確実に行うためにできることはありますか?
偉大な、それはそれを解決したようだ! – DownChapel