Я пытаюсь построить новый турбо-модуль в React-National, чтобы взаимодействовать со HealthKit, но почему-то я застрял. Я собрал Appspec, и это работает, ладно, затем я попытался прочитать документацию и написал модуль таким: < /p>
(//..mm file fucntion)
- (void)requestPermissions:(NSArray *)readTypes
writeTypes:(NSArray *)writeTypes
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject {
NSLog(@"RCTNativeHealthKit: Attempting minimal hardcoded permission request");
if (![HKHealthStore isHealthDataAvailable]) {
reject(@"health_data_unavailable", @"HealthKit is not available on this device", nil);
return;
}
NSMutableSet *typesToShare = [NSMutableSet set];
[typesToShare addObject:[HKObjectType workoutType]];
NSMutableSet *typesToRead = [NSMutableSet set];
for (NSString *typeString in readTypes) {
if ([typeString isEqualToString:@"HeartRate"]) {
HKQuantityType *heartRate = [HKQuantityType quantityTypeForIdentifier:HKQuantityTypeIdentifierHeartRate];
if (heartRate) [typesToRead addObject:heartRate];
}
}
NSLog(@"RCTNativeHealthKit: Requesting with %lu share types and %lu read types",
(unsigned long)typesToShare.count, (unsigned long)typesToRead.count);
[self.healthStore requestAuthorizationToShareTypes:nil
readTypes:typesToRead
completion:^(BOOL success, NSError *_Nullable error) {
NSLog(@"RCTNativeHealthKit: Callback with success: %@, error: %@",
success ? @"YES" : @"NO", error ? error.localizedDescription : @"none");
if (success) {
resolve(@(YES));
} else {
if (error) {
reject(@"permission_error", error.localizedDescription, error);
} else {
reject(@"permission_error", @"Unknown error occurred", nil);
}
}
}];
}
< /code>
и назвал бы его с фронта.static async requestHealthPermissions() {
try {
console.log('Requesting health permissions for:', HEALTH_METRICS);
const granted = await NativeHealthKit.requestPermissions(
"heartRate", // Read permissions
[] // Write permissions (empty for now)
);
console.log('Health permissions granted response:', granted);
if (granted) {
await Keychain.setGenericPassword(
HEALTH_PERMISSIONS_KEY,
'true',
{ service: HEALTH_PERMISSIONS_KEY }
);
//rest of the code
}
}catch(e){
console.log(e)
}
< /code>
Однако это всегда дает ошибку: < /p>
FAILED prompting authorization request to share (null), read (
HKQuantityTypeIdentifierHeartRate
), error Required authorization not granted
< /code>
Перед тем, как вы спросите: < /p>
[*] Да, я добавил nshealthrequiredReadAuthorizationtypeidentifiers, nshealthShareUseScription, nshealthupdateUsagedescription и nshealthclinicalHealthRecordSshareUsageDescription к info.plist < /li> yeseallicealtheRecordsShareUseScription. com.apple.developer.healthkit, com.apple.developer.healthkit.access, com.apple.developer.healthkit.background-leviefy и com.apple.developer.healthkit.recalarate-espimates к идентификации и идентификации и идентификации и идентификации и идентификации и идентификации и идентификации. Xcode в настройках сборки
Да, я добавил структуру HealthKit.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... n-not-gran
HealthKit, реагировать новую архитектуру - Ошибка требуется разрешение ⇐ IOS
Программируем под IOS
1746275355
Anonymous
Я пытаюсь построить новый турбо-модуль в React-National, чтобы взаимодействовать со HealthKit, но почему-то я застрял. Я собрал Appspec, и это работает, ладно, затем я попытался прочитать документацию и написал модуль таким: < /p>
(//..mm file fucntion)
- (void)requestPermissions:(NSArray *)readTypes
writeTypes:(NSArray *)writeTypes
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject {
NSLog(@"RCTNativeHealthKit: Attempting minimal hardcoded permission request");
if (![HKHealthStore isHealthDataAvailable]) {
reject(@"health_data_unavailable", @"HealthKit is not available on this device", nil);
return;
}
NSMutableSet *typesToShare = [NSMutableSet set];
[typesToShare addObject:[HKObjectType workoutType]];
NSMutableSet *typesToRead = [NSMutableSet set];
for (NSString *typeString in readTypes) {
if ([typeString isEqualToString:@"HeartRate"]) {
HKQuantityType *heartRate = [HKQuantityType quantityTypeForIdentifier:HKQuantityTypeIdentifierHeartRate];
if (heartRate) [typesToRead addObject:heartRate];
}
}
NSLog(@"RCTNativeHealthKit: Requesting with %lu share types and %lu read types",
(unsigned long)typesToShare.count, (unsigned long)typesToRead.count);
[self.healthStore requestAuthorizationToShareTypes:nil
readTypes:typesToRead
completion:^(BOOL success, NSError *_Nullable error) {
NSLog(@"RCTNativeHealthKit: Callback with success: %@, error: %@",
success ? @"YES" : @"NO", error ? error.localizedDescription : @"none");
if (success) {
resolve(@(YES));
} else {
if (error) {
reject(@"permission_error", error.localizedDescription, error);
} else {
reject(@"permission_error", @"Unknown error occurred", nil);
}
}
}];
}
< /code>
и назвал бы его с фронта.static async requestHealthPermissions() {
try {
console.log('Requesting health permissions for:', HEALTH_METRICS);
const granted = await NativeHealthKit.requestPermissions(
"heartRate", // Read permissions
[] // Write permissions (empty for now)
);
console.log('Health permissions granted response:', granted);
if (granted) {
await Keychain.setGenericPassword(
HEALTH_PERMISSIONS_KEY,
'true',
{ service: HEALTH_PERMISSIONS_KEY }
);
//rest of the code
}
}catch(e){
console.log(e)
}
< /code>
Однако это всегда дает ошибку: < /p>
FAILED prompting authorization request to share (null), read (
HKQuantityTypeIdentifierHeartRate
), error Required authorization not granted
< /code>
Перед тем, как вы спросите: < /p>
[*] Да, я добавил nshealthrequiredReadAuthorizationtypeidentifiers, nshealthShareUseScription, nshealthupdateUsagedescription и nshealthclinicalHealthRecordSshareUsageDescription к info.plist < /li> yeseallicealtheRecordsShareUseScription. com.apple.developer.healthkit, com.apple.developer.healthkit.access, com.apple.developer.healthkit.background-leviefy и com.apple.developer.healthkit.recalarate-espimates к идентификации и идентификации и идентификации и идентификации и идентификации и идентификации и идентификации. Xcode в настройках сборки
Да, я добавил структуру HealthKit.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79604701/healthkit-react-native-new-architecture-error-required-authorization-not-gran[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия