如何解决世博会推送通知发送到多个设备,而不是一个
我正在使用EXPO托管工作流开发移动应用程序。我的应用程序具有后端的PHP REST API。 在处理应用程序的推送通知部分时,我遇到了一个奇怪的问题。
我正在使用2种不同的设备(iPhone和Android手机)进行测试。两种设备都使用不同的用户帐户登录应用程序,并且两种设备都在数据库中设置了不同的博览会推送通知令牌。
当管理员希望向特定用户发送新报价时,两个设备都会收到推送通知,而不是仅管理员希望向其发送消息的用户所属的设备。
这是我从后端发送通知的方式。该代码仅执行一次,所以我想我在这里做错了。
$this->expo = Expo::normalSetup();
$interest = 'new_offer';
// Subscribe the recipient to the server
$this->expo->subscribe($interest,$recipient);
// Build the notification data
$notification = [
'title' => $this->title,'body' => $body,'data' => json_encode([
'type' => $this->type,'inquiryId' => $this->inquiry->getId(),'offerId' => $this->offer->getId(),]),];
// Notify an interest with a notification
$this->expo->notify($interest,$notification);
这就是我在应用程序中的处理方式
/**
* Get Expo push token and connect it with the user
* @see https://docs.expo.io/versions/latest/guides/push-notifications/
* @returns {Promise<void>}
*/
registerForPushNotificationsAsync = async () => {
const {status: existingStatus} = await Permissions.getAsync(Permissions.NOTIFICATIONS);
let finalStatus = existingStatus;
// only ask if permissions have not already been determined,because
// iOS won't necessarily prompt the user a second time.
if (existingStatus !== 'granted') {
// Android remote notification permissions are granted during the app
// install,so this will only ask on iOS
const {status} = await Permissions.askAsync(Permissions.NOTIFICATIONS);
finalStatus = status;
}
// Stop here if the user did not grant permissions
if (finalStatus !== 'granted') {
return;
}
// Get the token that uniquely identifies this device
const token = await Notifications.getExpoPushTokenAsync();
/**
* @token ExponentPushToken[cszdf-SKFcXkd-8e6BEtjNG]
*/
this.pushNotificationsToken = token;
this._notificationSubscription = Notifications.addListener(this._handleNotification);
}
_handleNotification = ({origin,data}) => {
console.warn(origin,data);
switch (data.type) {
case PushNotificationTypes.PARTNER_SUBMITTED_NEW_OFFER: {
return this.props.navigation.navigate('InquiryOffers',{getInquiryId: data.inquiryId});
}
}
}
有什么主意我在做错什么以及如何解决?
谢谢
鲍勃
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。