我有一个本机ios应用程序,其中推送通知用于通知用户某些用例。
我开发了一种推送通知服务,其中客户端使用react-native-push-notification
,而c# WAPI(using PushSharp v4.0)
通过Apple PN服务发送PN。
当用户登录时,我获取相关的userId并将其保存到AsyncStorage
中,并在多个屏幕中使用它,当用户注销时,我将其从AsyncStorage
中删除。 Apple在用户登录之前在应用程序的根目录下创建了PN令牌,但是即使用户未登录,我仍需要以某种方式绑定此userId和令牌。
如果我不能这样做,则当用户打开应用程序但未登录时,将生成他/她的新pn令牌,但该令牌未绑定到他/她的userId。
反正每次都绑定此令牌和userId吗?
如果我可以获取先前的令牌,我可以告诉服务器,将旧的令牌替换为新的令牌,但是我不知道是否可以获取先前的令牌。
这是我的PushNotificationService
import PushNotification from 'react-native-push-notification';
import React from 'react';
import { Alert } from 'react-native';
class PushNotificationService extends React.Component {
componentDidMount() {
PushNotification.configure({
onRegister: function (token) {
Alert.alert("Registered !", JSON.stringify(token));
console.log(token);
},
onNotification: function (notification) {
console.log('NOTIFICATION:', notification);
},
});
};
render() {
return (
null
);
}
}
export default PushNotificationService;
这就是我在App.js
render() {
return (
<View style={{ flex: 1 }}>
<AppNavigator />
<PushNotificationService />
</View>
);
}