Я использую https://www.npmjs.com/package/@react-native-firebase/messaging. для push-уведомлений.
Я использую
await firebase.messaging().requestPermission();
для запроса разрешения, но при этом не отображается предупреждение о разрешении.
После отладки я нашел
RCT_EXPORT_METHOD(requestPermission:
(RCTPromiseResolveBlock) resolve
:(RCTPromiseRejectBlock) reject
) {
if (RCTRunningInAppExtension()) {
[RNFBSharedUtils rejectPromiseWithUserInfo:reject userInfo:[@{
@"code": @"unavailable-in-extension",
@"message": @"requestPermission can not be called in App Extensions"} mutableCopy]];
return;
}
if (@available(iOS 10.0, *)) {
UNAuthorizationOptions authOptions;
if (@available(iOS 12.0, *)) {
authOptions = UNAuthorizationOptionProvisional | UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
} else {
authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
}
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError *_Nullable error) {
if (error) {
[RNFBSharedUtils rejectPromiseWithNSError:reject error:error];
} else {
resolve(@([RCTConvert BOOL:@(granted)]));
}
}];
} else {
// TODO community iOS 9 support could be added here with `registerUserNotificationSettings:settings` & `didRegisterUserNotificationSettings`
[RNFBSharedUtils rejectPromiseWithUserInfo:reject userInfo:[@{
@"code": @"unsupported-platform-version",
@"message": @"requestPermission call failed; minimum supported version requirement not met (iOS 10)."} mutableCopy]];
}
dispatch_async(dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] registerForRemoteNotifications];
});
}
, если я изменил
if (@available(iOS 12.0, *)) {
authOptions = UNAuthorizationOptionProvisional | UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
}
на
if (@available(iOS 12.0, *)) {
authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
}
Работает нормально. но как я могу изменить эту настройку из реактивного проекта.
Выше, в рамках платформы, он будет удален при обновлении. Есть ли способ удалить UNAuthorizationOptionProvisional из реактивной системы