gpt4 book ai didi

react-native - PushNotificationIOS.requestPermissions() 回调

转载 作者:行者123 更新时间:2023-12-04 04:35:25 26 4
gpt4 key购买 nike

我不想让我的用户在他们真正需要应用程序之前允许通知。

因此,当用户在我的应用程序中安排本地通知时,我想请求通知权限,如果用户接受,则设置本地通知。
问题是 PushNotificationIOS.requestPermissions() 似乎没有任何回调。 , 意思是如果我调用 PushNotificationIOS.checkPermissions()在用户点击警报窗口并返回 0 之前它会立即运行在权限对象中,即使用户可能接受。

所以我的问题是,是否有任何方法可以请求权限并随后设置通知,或者我是否必须在实际需要使用权限之前请求权限?

最佳答案

当设备注册推送通知时,可以选择添加事件监听器。

PushNotificationIOS.addEventListener('register', this._onPushNotificationRegistration);

当您尝试安排本地通知时,您可以在此时检查权限,如果您还没有权限,您可以请求它们。
_prepareNotification(alertBody, soundName, badge) {
let notification = {
alertBody: alertBody,
applicationIconBadgeNumber: badge,
fireDate: new Date(Date.now() + (1000 * 10)).getTime(), // 10 seconds in the future
soundName: soundName
};

PushNotificationIOS.checkPermissions((permissions) => {
if (permissions.alert) {
this._scheduleNotification(notification);
} else {
this._requestNotificationPermissions(notification);
}
});
}

当您请求权限时,将您要发送的通知存储在您的状态中。
_requestNotificationPermissions(notification) {
this.setState({
notificationToPost: notification
});

PushNotificationIOS.requestPermissions();
}

当用户允许您向他们发送通知时,然后将其安排在注册响应中。
_onPushNotificationRegistration(token) {
console.log('Registered for notifications', token);

if (this.state.notificationToPost) {
this._scheduleNotification(this.state.notificationToPost);
}
}

这是一个粗略的示例,说明您如何实现您的要求,我确信您的应用程序状态存在细微差别,但它没有涵盖,但希望它会给您一些想法。

我已将其中一些想法放入示例应用程序中,您可以查看 https://github.com/AidenMontgomery/react-native-sample .

关于react-native - PushNotificationIOS.requestPermissions() 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37632801/

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