flutter - Flutter Push 通知未在 IOS 上显示
问题描述
我在推送通知方面遇到了 Flutter 和 IOS 的问题。
我的设置和有效的东西:
1)我安装了firebase_messaging: ^5.1.6
没有错误的软件包/按照他们对 IOS 的所有说明
2) 我已在 IOS 上询问用户权限并接受接收推送通知
3) 我能够在 IOS 和 Android 设备上获得 FCM 令牌
4) 我在 Apple 开发者部分创建了一个密钥,并将密钥添加到 FCM
5)我在测试时关闭了应用程序/将其发送到后台 - 仍然没有运气
6) 我已使用 Xcode 将 google-service-info 文件添加到 Runner
7) 我在 XCode Capabilities 中添加了推送通知和后台通知
8) 我在 iPhone 7 物理设备和物理 iPad 上进行测试
我使用 curl 向 IOS 设备发送通知
curl -X POST --header "Authorization: key=<myAuthKEY>" \
--Header "Content-Type: application/json" \
https://fcm.googleapis.com/fcm/send \
-d "{\"to\":\"<myDeviceKey>\",\"notification\":{\"body\":\"Hello\"},\"priority\":10}"
我从 firebase 收到了成功的回复
{"multicast_id":<SomeIdHere>,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"<SomeIdHere>"}]}
这是我检索令牌的方法:
firebaseMessaging.getToken().then((String token) {
_authModel.setNotificationToken(token);
});
当我在 IOS 上运行应用程序时,我没有收到任何 Firebase 错误。
我已经搞砸了 2 天了,所以有点烦人,以上所有内容似乎都适用于 Android。
请有任何建议。
颤振医生:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.9.1+hotfix.4, on Mac OS X 10.15 19A583, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.38.1)
[✓] Connected device (4 available)
• No issues found!
我的 AppDelegate.m 文件
#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"
@import Firebase;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[FIRApp configure];
[GeneratedPluginRegistrant registerWithRegistry:self];
// Override point for customization after application launch.
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
@end
解决方案
它不漂亮,您可能需要提供更多详细信息,但请将此问题提交到https://github.com/FirebaseExtended/flutterfire/issues。否则,快速搜索iOS 推送通知问题会显示各种报告。这里有一些类似的,也许一个与你有关?
- https://github.com/FirebaseExtended/flutterfire/issues/1799
- 仅在前台显示,RE:
5) I have closed the app / sent it to the background when testing - still no luck
- 仅在前台显示,RE:
- https://github.com/FirebaseExtended/flutterfire/issues/1590
- 与背景问题有关
- https://github.com/FirebaseExtended/flutterfire/issues/1797
- 您是否从控制台尝试过?,RE:Stefano Saitta 的评论
- https://github.com/FirebaseExtended/flutterfire/issues/1677
- 适用于Android,但不适用于iOS
- https://github.com/FirebaseExtended/flutterfire/issues/1581
- 其他插件能破解吗?
或者,如果您已经提交了一份,请分享链接!其他人可能会向您添加反馈。
推荐阅读
- android - 使用数据绑定的问题:val vs var 和使用 invalidateAll()
- javascript - 当我在这个数组上使用 forEach 时,如何从数组中删除一个项目?
- mobile - 我如何摆脱这个 itemBuilder 和 forEach 问题?
- elixir - 减少一张地图中的地图列表
- python - 如何使用 python 列出 Azure 虚拟机?
- python - 在python中将值从一个函数传递到另一个函数
- python - 使用 Python 分解电子邮件地址
- python-3.x - 标准正态分布在 NumPy 和 PyTorch 的实践中是如何工作的?
- vb.net - 如何修复图像的“找不到资源”
- python - 无法从熊猫数据框中删除“matchId”列