iT邦幫忙

2

firebase cloud messaging的 onBackgroundMessage不會執行(IOS)- flutter

  • 分享至 

  • xImage

我目前使用firebase的cloud messaging做推播,訊息可以正常推送,但在APP為背景模式下卻不會進到onBackgroundMessage裏面,只有IOS無法,Android是會執行onBackgroundMessage的,查了很多資料還是無解,要請大家幫幫忙了

main.dart

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
  runApp(const App());
}

@pragma('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(
    RemoteMessage message,
    ) async {
  if (kDebugMode) {
    debugPrint('Handling a background message: ${message.messageId}');
  }
}

推播內容
{
"to" : "df9JUN6C1E8Omxez7TINHv:APA91bHZ2SlXU_uSJHQsBck9mc0zsUdgz_lz34DDpiZc0Ck-I2iBazWcNl2V8EZsEGQNt0NRXsP6VDXw79lsxr4MXLVLZOBCRgl6hSrLg88bhj4dMeIVzsoMTXEaE05j3wOyD-7omH2K",
"collapse_key" : "type_a",
"notification" : {
"body" : "Body of Your Notification",
"title": "Title of Your Notification",
"content_available" : true,
"priority" : "high"
},
"data" : {
"body" : "Body of Your Notification in Data",
"title": "Title of Your Notification in Title",
"key_1" : "Value for key_1",
"key_2" : "Value for key_2"
}
}
在APP前景模式下可以打印出content_available為true

info.plist

<key>UIBackgroundModes</key>
	<array>
		<string>fetch</string>
		<string>processing</string>
		<string>remote-notification</string>
	</array>
回答一下自己的問題,沒想到馬上就找到答案了,我是參考這篇回答https://stackoverflow.com/questions/60350461/flutter-firebase-messaging-not-working-on-ios-when-app-running-in-background-or

我在info.plist加入
FirebaseAppDelegateProxyEnabled: false
就可以背景執行了
這個部分應該是影響iOS的部分,Firebase傳送推播訊息到iOS系統前,需經過Apple的APN伺服器驗證,Android就不會有這個問題,只要把chanel實作出來就行了。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1

這個部分應該是影響iOS的部分,Firebase傳送推播訊息到iOS系統前,需經過Apple的APN伺服器驗證,Android就不會有這個問題,只要把chanel實作出來就行了。

我要發表回答

立即登入回答