HealthKit许可表未出现
在我的手表扩展中,我称之为此function:
func requestAuthorization() { let healthStore = HKHealthStore() let workoutType = HKObjectType.workoutType() let heartRateType = HKObjectType.quantityType(forIdentifier: .heartRate) //reading let readingTypes = Set([heartRateType!, workoutType]) //writing let writingTypes = Set([heartRateType!, workoutType]) //auth request healthStore.requestAuthorization(toShare: writingTypes, read: readingTypes) { (success, error) -> Void in if error != nil { print("error \(error?.localizedDescription)") } else if success { self.startButton.setEnabled(true) } else if !success { self.startButton.setEnabled(false) } } }
在AppDelegate.swift中,我有:
func applicationShouldRequestHealthAuthorization(_ application: UIApplication) { let healthStore = HKHealthStore() healthStore.handleAuthorizationForExtension { (success, error) -> Void in //... } }
我在手表和手机上显示对话框,当我从对话框中告诉它时,它会在手机上打开应用程序。 我遇到的问题是手机应用程序不显示应该显示的权限表以允许权限。 这里提到了权限表: https : //developer.apple.com/reference/healthkit
我需要做些什么才能让它出现以便授予权限? 现在,我可以通过访问Health应用程序来获取权限,然后选择我的应用程序并以这种方式授予权限。
我正在谈论的许可单就是这个。
编辑:我从requestAuthorization()方法调用打印出此错误。
error Optional("Required usage description strings not present in app\'s Info.plist")
有了这个TestHealthKit ,我就可以打开health-kit权限表了。
// 4. Request HealthKit authorization (HealthStore as! HKHealthStore).requestAuthorizationToShareTypes(nil, readTypes: dataTypesToRead()) { (success, error) -> Void in // self.CheckAuthorizationStatusFor(self.dataTypesToRead()) if (success) { SuccessCompletion(success: success) return; } else { FailureCompletion(err: error) return; } }
另外,检查是否已启用权利,如图所示。 。
- Facebook iOS SDK 3.5.1:openActiveSessionWithReadPermissions – 完成处理程序调用两次
- PFObject不反映“parsing数据浏览器”中的“成功”保存的更改
- 在swift3中的XMLParser.sharedParser.decode()
- Xcodevalidation无法在iTunes Connect中find应用程序
- Xcode 9 GM – WKWebView NSCoding支持在以前的版本中被打破
- 使用自动布局将子视图的宽度匹配到超级视图
- 通过Snapchat进行Beta测试和Beta测试员收购
- iOS应用程序相机访问被拒绝iOS 9.1(黑屏)** **
- didSelectRowAtIndexPath一次select多行