我正在使用https://www.npmjs.com/package/@react-native-firebase/messaging。推送通知。
我正在使用
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;
}
工作正常。但是我该如何从本机项目中更改该设置。
以上是在pod框架中,当我更新时将被删除。有什么办法可以从react-native中删除UNAuthorizationOptionProvisional