flutter开发过程中,加了苹果的消息推送通知,却总是收不到通知;
如果你也是用了如下的插件,来请求推送通知的权限 ,并且也正确弹出框了。
var result = await Permission.notification.request();
但是,却还是收不到离线推送通知。
原因是,上面这个插件,他只是请求权限,拉起弹出框,他并没有去调用 iOS中发起远程推送的方法。
// 获取UNUserNotificationCenter并申请[badge, alert, sound]权限。
let center = UNUserNotificationCenter.current();
center.requestAuthorization(options: [.badge, .alert, .sound]) { granted, error in
if(granted){
DispatchQueue.main.async {
// 注册远程推送
application.registerForRemoteNotifications();
}
}
}
必须这样调用,才会触发 didRegisterForRemoteNotificationsWithDeviceToken 方法的回调,来获取 deviceToken,这样把deviceToken传给后台,才可以完成消息推送。
所以,开发Flutter也并不能完全脱离Native啊,
很多的功能,都还是需要原生来实现,然后Flutter来调用。