私はFCMを使用してプッシュ通知を送信していますが、私はAppDelegateで次のメソッドを使用して、通知とともに送信されたデータを受信しています。iOS Firebase通知(データ付き)
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
if let firstMessage = userInfo["url"] as? String, let secondMessage = userInfo["category"] as? String {
print("message1: \(firstMessage)")
print("message2: \(secondMessage)")
let mainStoryBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let mainVC = mainStoryBoard.instantiateViewController(withIdentifier: "MainViewController") as! MainViewController
mainVC.url = firstMessage
mainVC.category = secondMessage
self.window?.rootViewController = mainVC
}else {
print("no data received!")
}
completionHandler(UIBackgroundFetchResult.newData)
}
私は「didReceiveRemoteNotification」を理解したときに呼び出されていない、ときアプリフォアグラウンドまたはバックグラウンドでデータが正常に受信されていますが、アプリが(殺害)が終了したとき、その通知が受信されますが、データのありませんアプリは終了し、代わりにプッシュ通知で受信したデータを表示するために "didFinishLaunchingWithOptions"にコードを記述する必要があります。どのようにそうするのか? ありがとう
こんにちは、あなたの答えをありがとう、私はすでにリモート通知からデータを取得するためにdidReceiveRemoteNotification関数を使用しました、データを受信した後、受信したURLを表示する特定のViewControllerにデータが送られます。しかし、アプリケーションが終了してもデータは受信されません。私がdidReceiveRemoteNotification関数を使用した私の質問のコードを確認してください。ありがとう –
通知がタップされるとデータが受信されます。ファイヤーベースクラウドのメッセージペイロードに通知キーとデータキーの両方を持っています – drulabs
ファイアベースファンクションを使用してFirebaseデータベースに値が追加されたときに通知をトリガーします。通知:{ \t \tタイトル: 'タイトル'、 \t \t体: '本体'、 \t \tバッジ: '1'、 \t \t音: 'デフォルト' \t \t \t \tデータ:{ \t \t \t \t \t \t URL: 'https://www.google.com'、 \t \t \tカテゴリ: '私のカテゴリ' \t \t} \t} \t }; –