Push 通知内の Payload の内容を起動時にデバッグする
Payload
Push 通知には Payload と呼ばれるデータ領域があり、
そこにはシステムがユーザの警告するためのデータや、別用途で用いるためのカスタムデータなどが入っています。
iOS 側での実装
対象のアプリケーションが起動していない状態で、Notification Center 内の通知をタップするなどして起動すると、
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
が走り、launchOptions の中に Push 通知内の Payload のデータが入っているというわけです。
そのデータは以下の様にして取得する事ができます。
launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]
デバッグが困難
では実際に Payload 内におかしなデータが入っている可能性があり、
その内容をみながらデバッガを使ってデバッグしたいという場合があるとします。
しかし、
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
はアプリケーションの起動してすぐに走ってしまうので Xcode でビルドした時に呼ばれてしまい、
起動中に Push 通知を受け取った場合は以下の別のメソッドが呼ばれてしまうのです。
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
解決策
長々と書いてきましたが、以下の様にして簡単に解決出来ます。
Info タブの Launch トグルを Automatically から Wait for ~ to be launched menu に変えるだけです。
こうすることでアプリが実際に指などで起動されるまでデバッガが起動しなくなります。
- 出版社/メーカー: 早川製菓
- 発売日: 2013/12/02
- メディア: 食品&飲料
- この商品を含むブログ (1件) を見る