アプリケーションがバックグラウンドであるときにリモートプッシュ通知を受信すると、アプリケーションはapplicationDidBecomeActiveと入力します。そこから、通知からどのようにNSDictionaryのデータにアクセスできますか?applicationDidBecomeActiveでリモートプッシュ通知データにアクセスするにはどうすればよいですか?
答えて
通知データはapplication:didReceiveRemoteNotification:
にあなたのアプリに配信されます。 applicationDidBecomeActive:
で処理したい場合は、application:didReceiveRemoteNotification:
に保存して、applicationDidBecomeActive
に再度読んでください。
アプリがbackground
状態の場合、プッシュ通知を受信してタップすると、アプリはapplication:didFinishLaunchingWithOptions:
で呼び出され、application:didReceiveRemoteNotification:
ではなく呼び出されます。
プッシュ通知ペイロードはapplication:didFinishLaunchingWithOptions:
からlaunchOptions
辞書にアクセスできます。私はこれが誰かのために役に立つことを願っていますAppDelegate
@implementation AppDelegate{
NSDictionary *dUserInfo; //To storage the push data
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//Check for options
if (launchOptions != nil)
{
//Store the data from the push.
dUserInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (dUserInfo != nil)
{
//Do whatever you need
}
}
return YES;
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
//Data from the push.
if (dUserInfo != nil)
{
//Do whatever you need
}
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
//Store the data from the push.
if (userInfo != nil)
{
dUserInfo = userInfo;
}
}
で
:
これは正しいアプリケーションではありません:didFinishLaunchingWithOptions:アプリケーションがバックグラウンドのときに呼び出されません。これは、アプリケーションの起動時にのみ呼び出されます。あなたが言っていることは完全にオポジットです。まずはapplicationと呼ばれます:didReceiveRemoteNotification:そして次にapplicationDidBecomeActive: –
私はプッシュを管理するには、このコードを使用します。
ハッピーコーディング。
スウィフトバージョン:これを復活させるために申し訳ありません
var dUserInfo: [NSObject : AnyObject]?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// code...
if let info = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? [NSObject : AnyObject] {
dUserInfo = info
}
return true
}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
dUserInfo = userInfo
}
func applicationDidBecomeActive(application: UIApplication) {
// code...
self.yourAction(dUserInfo)
}
func yourAction(userInfo: [NSObject : AnyObject]?) {
if let info = userInfo?["aps"] as? Dictionary<String, AnyObject> {
}
}
- 1. リモートプッシュ通知
- 2. Androidで他のアプリケーションの通知にアクセスするにはどうすればよいですか?
- 3. 設定 - >通知の下に通知を設定するにはどうすればよいですか?
- 4. iOSプッシュ通知をテストするにはどうすればよいですか?
- 5. Growl通知:ウェブサイトからGrowl通知をプッシュするにはどうすればよいですか?
- 6. Djangoフォームフィールドのデータにアクセスするにはどうすればよいですか?
- 7. Django通知をインストールするにはどうすればいいですか?
- 8. 接続しているすべてのユーザーに通知するにはどうすればよいですか?
- 9. 長いプロセス中にユーザーに通知するにはどうすればよいですか?
- 10. silverlightのバインディングエラーについてユーザーに通知するにはどうすればよいですか?
- 11. サーバー上のイベントについてクライアントのブラウザに通知するにはどうすればよいですか?
- 12. デスクトップ設定の変更についてWindowsに通知するにはどうすればよいですか?
- 13. Angular SPAの404ページについてGoogleBotに通知するにはどうすればよいですか?
- 14. AIRアプリケーションでプッシュ通知を有効にするにはどうすればよいですか?
- 15. iphoneでGET/POSTリクエストの結果をユーザーに通知するにはどうすればよいですか?
- 16. C2DMプッシュ通知をWi-Fiで有効にするにはどうすればよいですか?
- 17. 通知をpynotifyの共通のタイトルにマージするにはどうすればいいですか?
- 18. ウェブページの特定の変更をすばやく通知するにはどうすればよいですか?
- 19. 同じ通知を繰り返し通知するようにgrowlを停止するにはどうすればよいですか?
- 20. 音量の変更に関する通知を登録するにはどうすればよいですか?
- 21. 新しいメッセージをユーザーに通知するにはどうすればよいですか?
- 22. applicationDidBecomeActiveが呼び出されたときにアクティブビューコントローラに通知する方法は?
- 23. 検証通知テキストをプログラマチックにSilverlightのテキストボックスに設定するにはどうすればよいですか?
- 24. シグナル受信時にgdbに外部通知を送信するにはどうすればよいですか?
- 25. SQLServerはvb.netアプリケーションにイベントを通知するにはどうすればよいですか?
- 26. x秒後に消えるプッシュ通知を作成するにはどうすればよいですか?
- 27. Androidで道路交通情報にアクセスするにはどうすればよいですか?
- 28. 保留中のインテント/アクションを1つの通知に入れるにはどうすればよいですか?
- 29. Outlookでマウスイベントにアクセスするにはどうすればよいですか?
- 30. vaadinツリーでオブジェクトにアクセスするにはどうすればよいですか?
ていますが、アプリケーションに通知を受信したとき何が起こる:didReceiveRemoteNotificationとアプリケーションがフォアグラウンドにある、applicationDidBecomeActiveが呼び出されないことを意味しています。 –
'application:didReceiveRemoteNotification:'では、 ' - [UIApplication applicationState]'にあなたのアプリがすでにフォアグラウンドにあるかどうかを調べることができます。そうであれば、ただちに通知を処理してください。 –