gpt4 book ai didi

ios - 我怎么知道用户是否已经接受/拒绝了 React-Native 的 ios 通知?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:28:23 26 4
gpt4 key购买 nike

我想显示一个自定义屏幕,要求用户在其 iOS 设备上接受或拒绝通知。仅当用户从未注册或从未接受/拒绝该应用程序的通知时,才应显示此屏幕。

虽然,我似乎没有找到一种方法来知道用户是否已经注册。而且我不想使用任何类型的异步存储,因为这可能会被用户清理。

我找到了方法 PushNotificationIOS.checkPermissions 但这并没有告诉我用户是否已经注册。

我需要一种方法来了解用户是否“尚未注册”、“接受”或“拒绝”。

如果用户尚未注册,我会显示屏幕。如果用户接受或拒绝了通知,我不会显示屏幕。

React-Native 有办法知道这一点吗?

谢谢

最佳答案

我最终使用 Objective-C 创建了一个桥接器,以从 javascript 访问 authorizationStatus:

@implementation NotificationPermissions

RCT_EXPORT_MODULE();

RCT_EXPORT_METHOD(getAuthorizationStatus:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject)
{
[[UNUserNotificationCenter currentNotificationCenter] getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
resolve(@(settings.authorizationStatus));
}];
}

然后在javascript中可以这样使用:

const authorizationStatus = await NotificationPermissions.getAuthorizationStatus();

authorizationStatus 是一个介于 0 和 3 之间的数字,基于 UNAuthorizationStatus

关于ios - 我怎么知道用户是否已经接受/拒绝了 React-Native 的 ios 通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54011404/

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