web-dev-qa-db-ja.com

didReceiveRemoteNotification:fetchCompletionHandlerからの解析警告

Parse.comからこのコードを追加すると、エラーが発生します。

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    if (application.applicationState == UIApplicationStateInactive) {
        [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
    }
}

私は何が起こっているのか本当に理解していませんが、ログにこの警告が出ています:

-[application:didReceiveRemoteNotification:fetchCompletionHandler:]を実装しましたが、Info.plistでサポートされているUIBackgroundModesのリストに「リモート通知」を追加する必要があります。

PlistファイルにUIBackgroundModes - remote-notificationは問題を修正しますが、

しかし、それを行うと、言葉が次のように変わります。

Required Background Modes-> App downloads content in response to Push notifications

私のアプリはそれをしないので、そもそもなぜこれをしているのか混乱しています。

67
Arian Faurtosh

リモート通知に応答してデータを取得するつもりがない場合、このデリゲートメソッドを実装できると思います。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 

例えば.

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
    if (application.applicationState == UIApplicationStateInactive) {
        [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
    }
}

現在使用しているものの代わりに。

32
djshiow

手動で.plistファイルにキーを追加したくない場合は、@ MurraySagalの回答のグラフィカルバージョンがあります。1から7までの手順に従ってください。完了です。 :)

enter image description here

注:手順を読み込めない場合は、次の組み合わせを使用して現在のタブをズームアウトできます。 Command++ (ズームイン用)および Command+- (ズームアウト用)。もし Command 動作しません、あなたはで試すことができます Ctrl

209
Hemang

@djshiowはあなたの問題を解決していないと思います。

Info.plistファイルに次を追加する必要があります。

remote-notification

1)新しい行を追加し、左側の列で、必要なバックグラウンドモードを選択します。

2)アイテム0の行で、右の列をクリックして、「remote-notification」と入力します。 Enterキーを押します。

ソース: http://hayageek.com/ios-silent-Push-notifications/

37
jomafer

Xcode 6の場合:

  • Project Navigatorでプロジェクトをクリックします
  • [プロジェクトとターゲット]リストで、ターゲットをクリックします。
  • クリック機能
  • バックグラウンドモードを展開してオンにする
  • [リモート通知]をクリックします

これにより、Required background modesキーとApp downloads content in response to Push notifications値からinfo.plist

22
Murray Sagal

新しいdidReceive ...メソッドを使用すると、次の2つのことが行われます。

  1. Plistに必要なエントリを追加します
  2. データを処理するイベントを処理する完了ハンドラーを追加します

データをダウンロードしたくない場合は、これをdidReceive ...メソッドに追加できます。

completionHandler(.NoData)
0
goggelj