我是 Flutter 和 IOS 的新手。我正在为 Android 和 IOS 配置 FCM 推送通知。对于 android,它工作正常。我已经通过引用此链接完成了https://medium.com/@jun.chenying/flutter-tutorial-part3-push-notification-with-firebase-cloud-messaging-fcm-2fbdd84d3a5e。对于IOS,如果打开应用程序并且同时从Firebase控制台发送FCM,则会调用Flutter on message(参见屏幕截图,日志在那里)。但是如果我关闭应用程序,通知不会发送到通知栏,但我会在 Android 应用程序中收到,
不知道问题出在哪里,Apple Profiles 的问题还是 Flutter 的问题。
iOS 构建设置和签名及功能
这是我在颤振中的代码,
class FirebaseNotifications {
FirebaseMessaging _firebaseMessaging;
SharedPreferences _sharedPreferences;
void setUpFirebase() {
_firebaseMessaging = FirebaseMessaging();
initializeSharedPreferences();
firebaseCloudMessaging_Listeners();
}
void initializeSharedPreferences() async {
_sharedPreferences = await SharedPreferences.getInstance();
}
void firebaseCloudMessaging_Listeners() {
if (Platform.isIOS) iOS_Permission();
_firebaseMessaging.getToken().then((token) {
_sharedPreferences.setString(Preferences.device_token, token);
print('Token'+token);
});
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print('on message $message');
},
onResume: (Map<String, dynamic> message) async {
print('on resume $message');
},
onLaunch: (Map<String, dynamic> message) async {
print('on launch $message');
},
);
}
void iOS_Permission() {
_firebaseMessaging.requestNotificationPermissions(
IosNotificationSettings(sound: true, badge: true, alert: true));
_firebaseMessaging.onIosSettingsRegistered
.listen((IosNotificationSettings settings) {
print("Settings registered: $settings");
});
}
}
如果将来其他人遇到这种情况,请扩展这个答案。问题是在Info.plist
FirebaseAppDelegateProxyEnabled
设置为 bool 而不是字符串,因此:
<key>FirebaseAppDelegateProxyEnabled</key>
</false>
becomes
<key>FirebaseAppDelegateProxyEnabled</key>
<string>0</string>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)