React Native HealthKit getDailyStepCountSamples 返回未定义或空数组

Posted

技术标签:

【中文标题】React Native HealthKit getDailyStepCountSamples 返回未定义或空数组【英文标题】:React Native HealthKit getDailyStepCountSamples returning undefined or empty array 【发布时间】:2021-01-20 03:58:11 【问题描述】:

我正在使用 react-native-health 创建一个应用来读取每日步数。我已经在模拟器 Health 应用程序上手动添加了步骤,并且数据源正在显示我的应用程序并且所有 Health 权限都已打开,但是当我尝试 getDailyStepCountSamples 时,我得到一个空数组。

另外,我遇​​到的另一个问题是我需要在每次获取空数组之前启动 HealthKit,否则我会得到“未定义”。一旦我再次启动 HealthKit,它将返回“未定义”并记录“步骤:[]”。我的代码有问题吗?

import AppleHealthKit from 'react-native-health';

export function useHealthKit(
    init = false,
    steps = false,
) 
    const PERMS = AppleHealthKit.Constants.Permissions;

    const initiate = () => 
        let permissions = 
            permissions: 
                read: [
                    PERMS.StepCount,
                ],
            ,
        ;
        AppleHealthKit.initHealthKit(permissions, (err, results) => 
            if (err) 
                console.log(err);
             else 
                console.log('Initialized!', results),
            
        );
    ;

    const getSteps = () => 
        let stepOptions = 
            startDate: new Date(2021, 1, 1).toISOString(),
        ;
        AppleHealthKit.getDailyStepCountSamples(
            stepOptions,
            (err, results) => 
                if (err) 
                    return;
                
                console.log('Steps: ', results);
            ,
        );
    ;
    init && initiate();
    steps && getSteps();

我通过以下方式调用它:

const SomeView = () => 
    <View>
      <Button onPress=() => useHealthKit(init: true)>
        <Text>Initiate HealthKit</Text>
      </Button>
      <Button onPress=() => console.log(useHealthKit(steps: true))>
        <Text>Console.log steps</Text>
      </Button>
    </View>
;

【问题讨论】:

【参考方案1】:

我整个下午都在尝试做一些非常相似的事情,结果和你一样。

为我解决的问题是使用github threads 之一的这个奇怪的技巧

基本上,您需要将开始日期更改为比您想要采样提前一个月,所以在您的情况下,这将是 2020 年 1 月 12 日。

原发帖人说这是由 C 代码中的问题引起的。

我还在选项变量中为includeManuallyAdded: trueperiod: 1444 设置变量

为我工作,希望对你有用!

【讨论】:

以上是关于React Native HealthKit getDailyStepCountSamples 返回未定义或空数组的主要内容,如果未能解决你的问题,请参考以下文章

React Native HealthKit getDailyStepCountSamples 返回未定义或空数组

React Native HealthKit getDailyStepCountSamples 返回未定义或空数组

React Native:关闭应用程序时在 iOS 上运行后台任务的最佳方法?

Healthkit 权限的自动单元测试

React Native学习之自定义Navigator

未找到 React/RCTDefines.h 文件