如何解决React Native Android 前台推送通知与 iOS 不一致
我正在使用 react-native-notifications
并且前台通知在 iOS 上正常工作,但仍然显示在 Android 模拟器上。我没有要测试的 Android 设备。
这段代码中是否有我遗漏的地方?
import React from 'react'
import {Platform,View} from 'react-native'
import { Notifications } from 'react-native-notifications'
import API from '../models/api';
import DeviceInfo from 'react-native-device-info'
import {connect} from 'react-redux';
class PushNotifications extends React.Component<any,any> {
public async componentDidMount() {
if (await DeviceInfo.isEmulator() && Platform.OS === 'ios') return null;
this.registerDevice()
this.registerNotificationEvents()
}
public registerDevice = () => {
console.log(TAG,'registering device');
Notifications.events().registerRemoteNotificationsRegistered(async event => {
// Save device
// ...
})
Notifications.events().registerRemoteNotificationsRegistrationFailed(event => {
console.error(event)
})
Notifications.registerRemoteNotifications()
}
public registerNotificationEvents = () => {
Notifications.events().registerNotificationReceivedForeground((notification,completion) => {
console.log('Notification Received - Foreground',notification)
// Calling completion on iOS with `alert: true` will present the native iOS inApp notification.
completion({ alert: false,sound: false,badge: false })
})
Notifications.events().registerNotificationopened(async (notification:any,completion) => {
console.log('Notification opened by device user',notification)
// console.log(`Notification opened with an action identifier: ${notification.identifier}`);
// ...
completion()
})
Notifications.events().registerNotificationReceivedBackground((notification,completion) => {
console.log('Notification Received - Background',notification)
// Calling completion on iOS with `alert: true` will present the native iOS inApp notification.
completion({ alert: true,sound: true,badge: true })
})
Notifications.getinitialNotification()
.then(notification => {
console.log('Initial notification was:',notification || 'N/A')
})
.catch(err => console.error('getinitialNotifiation() Failed',err))
}
render() {
return <View/>
}
}
const s2p = state => ({
userId: state.user._id
});
export default connect(s2p)(PushNotifications);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。