React Native HealthKit getDailyStepCountSamples 返回未定义或空数组
React Native HealthKit getDailyStepCountSamples returning undefined or empty array
我正在使用 react-native-health 创建一个应用程序来读取每日步数。我在模拟器 Health 应用程序上手动添加了步骤,数据源显示我的应用程序并且所有 Health 权限都已启用,但是当我尝试获取 DailyStepCountSamples 时,我得到一个空数组。
此外,我遇到的另一个问题是我需要在每次获取空数组之前启动 HealthKit,否则我会得到 'undefined'。一旦我再次启动 HealthKit,它将 return 'undefined' 并记录 'Steps: []'。我的代码有问题吗?
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>
};
我整个下午都在尝试做一些非常相似的事情,结果和你一样。
为我解决问题的是使用 github threads
之一的这个奇怪的技巧
基本上,您需要将开始日期更改为 比您想抽样早一个月,因此在您的情况下,这将是 01/12/2020。
楼主说这是C代码中的一个问题。
我还在我的选项变量中为 includeManuallyAdded: true
和 period: 1444
设置了变量
对我有用,希望对你有用!
我正在使用 react-native-health 创建一个应用程序来读取每日步数。我在模拟器 Health 应用程序上手动添加了步骤,数据源显示我的应用程序并且所有 Health 权限都已启用,但是当我尝试获取 DailyStepCountSamples 时,我得到一个空数组。
此外,我遇到的另一个问题是我需要在每次获取空数组之前启动 HealthKit,否则我会得到 'undefined'。一旦我再次启动 HealthKit,它将 return 'undefined' 并记录 'Steps: []'。我的代码有问题吗?
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>
};
我整个下午都在尝试做一些非常相似的事情,结果和你一样。
为我解决问题的是使用 github threads
之一的这个奇怪的技巧基本上,您需要将开始日期更改为 比您想抽样早一个月,因此在您的情况下,这将是 01/12/2020。
楼主说这是C代码中的一个问题。
我还在我的选项变量中为 includeManuallyAdded: true
和 period: 1444
设置了变量
对我有用,希望对你有用!