javascript - Titanium HealthKit 模块 - 无法创建按来源累积和分隔的统计查询

标签 javascript ios titanium healthkit

我正在尝试创建一个 Ti.Healthkit.StatisticsCollection,我可以在其中获取每天分组的步数。问题是,我还需要所有来源,因此我可以过滤(“手动”)通过 Apple Health(手动)添加的所有步骤以及设备和 Apple Watch 之外的其他来源。

所以;我已经设置了统计查询,一切看起来都很好。我可以获取每个日期的所有来源。但是,事情是这样的,我无论如何都无法获取每个来源的步数。

    var query = HealthKit.createStatisticsCollectionQuery(
    {
        type        : HealthKit.OBJECT_TYPE_STEP_COUNT,
        filter      : HealthKit.createFilterForSamples(
        {
            startDate   : date_from,
            endDate     : date_to
        }),
        options     : HealthKit.STATISTICS_OPTION_CUMULATIVE_SUM | HealthKit.STATISTICS_OPTION_SEPARATE_BY_SOURCE,
        anchorDate  : anchorDate,
        interval    : 3600*24, // 24 hours
        onInitialResults    : function(e) 
        {
            if (e.errorCode !== undefined) 
            {
                //Utils.showError(e);
            } 
            else 
            {
                for(var i in e.statisticsCollection.statistics)
                {
                    var statistics = e.statisticsCollection.statistics[i];
                    console.log(statistics.sources[0]);
                    var quantity = statistics.getSumQuantityForSource(statistics.sources[0]);


                    var stepCount = quantity.valueForUnit(HealthKit.createUnit('count'));

                    console.log(statistics.sources);
                    //console.log(statistics.startDate);
                    console.log(stepCount);

                    for(var k in statistics.sources)
                    {
                        var _source = statistics.sources[k];


                        var quantity = statistics.getSumQuantity(_source);

                        console.log(_source);
                        console.log(quantity);

我已尝试遵循 Apple 文档以及 Ti.HealthKit 文档,据我所知,我现在已经尝试了所有方法。我还尝试在迭代所有源时获取步骤,将其放入统计方法中;

sumQuantityForSource(_source)

但这只会返回“null”。

我可以获得一天的步数,但它包含所有源步骤..

有人有什么建议可以尝试吗?我觉得我已经尝试了所有可能的方法。

最佳答案

好吧,在这篇文章发布后我用了 5 小时 10 分钟,我发现我做错了什么。我应该检查“数量”是否为空 (var quantity = statistics.getSumQuantity(_source);) 并继续下一次迭代,因为在结果数组下方,我用步骤点击了源..

关于javascript - Titanium HealthKit 模块 - 无法创建按来源累积和分隔的统计查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36345039/

相关文章:

ios - 在 iOS 上构建 WebRtc

android - Appcelerator 钛平台 : Android/iOS Icons Structure andUse

javascript - 从钛内存中删除 var 对象

javascript - Appcelerator Titanium Mobile 如何工作?

javascript - 将过滤后的数据从 php 保存到 Excel

javascript - D3.js 堆叠条形图的动画更新

ios - 过滤的关系计数未在父 View 中更新

javascript - javascript 电子邮件混淆到底有多安全?

javascript - 如何在 Angular.js 中从 html 传输数据?

ios - 在 ionic 中强制将搜索栏中的第一个字母大写