DidReceiveRemoteNotification:fetchCompletionHandler からの警告を解析します
-
20-12-2019 - |
質問
parse.com から次のコードを追加すると、エラーが発生します。
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
if (application.applicationState == UIApplicationStateInactive) {
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
}
何が起こっているのかよくわかりませんが、ログに次の警告が表示されます。
実装しました - [アプリケーション:DidReceiverEmotenotification:fetchCompleationHandler:]が、info.plistのサポートされているuibackgroundmodesのリストに「リモートノット化」を追加する必要があります。
plistファイルに追加すると思います UIBackgroundModes - remote-notification
問題は解決するでしょう、
しかし、これを実行すると、単語が次のように変わります。
Required Background Modes
-> App downloads content in response to push notifications
私のアプリではこれができないので、そもそもなぜこれを行うのか混乱しています。
解決
リモート通知に応じてデータをフェッチするつもりがない場合は、このデリゲート メソッドを実装できると思います。
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
例えば
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
if (application.applicationState == UIApplicationStateInactive) {
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
}
現在使用しているものの代わりに。
他のヒント
キーを手動で追加したくない場合は、 .plist
ファイルを作成し、@MurraySagal の回答のグラフィカル バージョンを次に示します。1 から 7 の手順に従ってください。これで完了です。:)
注記:手順を読み上げることができない場合は、次の方法を組み合わせて現在のタブをズームアウトできます。 指示++ (ズームイン用) および 指示+- (ズームアウト用)。もし 指示 動作しません、試してみてください Ctrl.
@djshiow では問題が解決していないと思います。
info.plist ファイルに以下を追加する必要があります。
1) 新しい行を追加し、左側の列で選択します。 必要なバックグラウンドモード.
2) 項目 0 の行で、右の列をクリックして次のように入力します。 リモート通知. 。Enterを押します。
Xcode 6 の場合:
- プロジェクトナビゲータでプロジェクトをクリックします
- 「プロジェクトとターゲット」リストでターゲットをクリックします。
- クリック機能
- バックグラウンドモードを展開してオンにします
- 「リモート通知」をクリックします
これにより、 Required background modes
キーと App downloads content in response to push notifications
に値を付ける info.plist
.
新しいdidReceiveを使用すると...このメソッドでは、次の 2 つのことを行うことが期待されています。
- plist に必要なエントリを追加します
- データを処理するイベントを処理する完了ハンドラーを追加します。
データをダウンロードしたくない場合は、これを DidReceive... に追加できます。方法
completionHandler(.NoData)