gpt4 book ai didi

javascript - 更新应用程序时react-native-fcm token 刷新

转载 作者:行者123 更新时间:2023-12-03 23:22:50 30 4
gpt4 key购买 nike

我在我的 RN 应用程序中使用 react-native-fcm 组件来推送通知。
它运行完美,但我注意到一个让我发疯的问题,当我们
在 Play 商店发布新版本,应用更新 token 过期,
我们已经保存了旧 token 并向该 fcm token 发送通知,
所以用户停止接收通知。

如果用户注销并再次登录,我会得到新的 token ,但我当然不能强制我的用户这样做,在组件示例中我发现了一个刷新 token 事件但它不起作用,你知道为什么该事件刷新时没有收到新 token ?我做错了什么?谢谢。

这是我的代码(为了便于阅读,我删除了一些部分):

import React, { Component } from 'react';
import { ScrollView, View, Text, Linking, TouchableOpacity, AppState } from 'react-native';
import { connect } from 'react-redux';
import FCM, { FCMEvent } from 'react-native-fcm';
import { getTopNotification, updateUser } from '../api';
import { topNotificationChanged, logOut } from '../actions';

class Home extends Component {
constructor() {
super();
this.onLogOutPress.bind(this);
}

state = { topNotificationLink: '', appState: AppState.currentState };

componentDidMount() {
AppState.addEventListener('change', this.handleAppStateChange);
this.refreshTokenListener = FCM.on(FCMEvent.RefreshToken, fcmToken => {
updateUser(this.props.user.id, this.props.user.token, { fcmToken });
});
}

componentWillUnmount() {
AppState.removeEventListener('change', this.handleAppStateChange);
this.refreshTokenListener.remove();
}

handleAppStateChange = (nextAppState) => {
if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
this.onFocus();
}
this.setState({ appState: nextAppState });
}

render() {
return (
<ScrollView>
{this.renderTopNotification()}
{this.renderMenuOptions()}
</ScrollView>
);
}
}

const mapStateToProps = state => {
return {
user: state.auth.user,
lang: state.auth.lang,
topNotificationText: state.main.topNotificationText
};
};

export default connect(mapStateToProps, { topNotificationChanged, logOut })(Home);

最佳答案

const oldToken = await firebase.messaging().getToken();
await firebase.messaging().deleteToken();
const newToken = await firebase.messaging().getToken();
if (oldToken === newToken) {
console.error('Token has not been refreshed');
}

关于javascript - 更新应用程序时react-native-fcm token 刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44416337/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com