iOS Flutter 没有收到推送通知
Posted
技术标签:
【中文标题】iOS Flutter 没有收到推送通知【英文标题】:iOS Flutter not getting push notifications 【发布时间】:2020-05-25 20:12:33 【问题描述】:我在 Flutter 上为 ios 设置推送通知时遇到问题。 另一个开发人员也尝试添加 - 有同样的问题。
TL;DR:任何人都可以在 iOS Flutter 上使用来自稳定频道的全新构建推送运行吗?
我按照此处描述的设置步骤进行操作: https://pub.dev/packages/firebase_messaging
具体来说:
生成应用程序 ID 并在 https://developer.apple.com/account/resources/certificates/ 中推送密钥 将 info.plist 添加到 ios/Runner 文件夹 开启推送功能 已将 APNS 证书上传到 Firebase 控制台 确保 App / Runner、info.plist 和 GoogleService-Info.plist 中的 bundle ID 相同在 AppDelegate.swift 中添加行
如果 #available(iOS 10.0, *) UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
没有推送。应用在后台时也不会,根本不会。
我还尝试了另一个步骤 - 发送个人推送。在 CURL 中发送代码如下所示:
curl -i -X POST \
-H "Content-Type:application/json" \
-H "Authorization:key=AIza_legacy_key" \
-d \
'
"to": "my_push_token",
"notification":
"body": "test_body",
"title": "test_title"
,
"priority": "high",
' \
'https://fcm.googleapis.com/fcm/send'
而且响应总是这种类型: - 第一个请求是 InvalidRegistration - 第二次和下一次相同的呼叫未注册
另一个人今年夏天发现了类似的问题并在GitHub上发帖,但是线程被关闭了: https://github.com/flutter/flutter/issues/30486
我的 Flutter 医生:
[✓] Flutter (Channel unknown, v1.12.13+hotfix.7, on Mac OS X 10.15.3 19D76, locale ru-UA)
• Flutter version 1.12.13+hotfix.7 at /Users/reiven/flutter
• Framework revision 9f5ff2306b (2 weeks ago), 2020-01-26 22:38:26 -0800
• Engine revision a67792536c
• Dart version 2.7.0
[✓] android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/reiven/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 29.0.2
• Java binary at: /Applications/Android Studio 3.6 Preview.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.3.1, Build version 11C504
• CocoaPods version 1.7.5
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 3.6)
• Android Studio at /Applications/Android Studio 3.6 Preview.app/Contents
• Flutter plugin version 43.0.2
• Dart plugin version 192.7761
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
[✓] Connected device (4 available)
• iPhone • 96c120610d684dbab7f5e4d036a7f48041755f96 • ios • iOS 12.3.1
• iPhone 11 Pro Max • 8ABC99D3-6C46-4A3D-968B-F5719AA92C97 • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-3 (simulator)
• Chrome • chrome • web-javascript • Google Chrome 79.0.3945.130
• Web Server • web-server • web-javascript • Flutter Tools
附言我尝试过的一些事情:
使用了另一个开发者帐户(100% 确认推送正在另一个项目中工作) 使用了另一个 Firebase 帐户 重新创建的证书、项目 让其他开发人员尝试设置自己的推送(他过去也确认成功)。【问题讨论】:
我也有同样的问题...有什么想法吗? 【参考方案1】:神奇的是,昨天晚上才开始工作。 所以首先 - 现在尝试。如果不工作 - 重新创建证书并重做初始化步骤。如果仍然无法正常工作 - 祈祷并改天重试。
【讨论】:
您使用的是 AppKey 还是证书?我有完全相同的问题,我的 Android 应用收到 Firebase 的推送,但 iOS 没有。 我用过AppKey。我知道 Android - 它总是运行良好。问题出在 iOS 上 您遇到过类似的问题吗? github.com/FirebaseExtended/flutterfire/issues/1690。删除 if #available(iOS 10.0, *) 我猜对许多开发人员有帮助!这样做会停止获取系统托盘消息吗?只有 onmessage 会被调用? @LOG_TAG,我已经删除了这一行,但没有任何变化...不过,我没有收到推送。 @DanielKuta 系统托盘或 onMessage: print("onMessage: $message");你没有得到哪一个?以上是关于iOS Flutter 没有收到推送通知的主要内容,如果未能解决你的问题,请参考以下文章