iOS中的Expo Pedometer遇到问题了,有变化吗?

时间:2019-07-09 13:32:59

标签: javascript ios react-native expo pedometer

我一直在开发使用Expo构建的跨平台应用程序,并且在iOS中使用计步器时遇到了麻烦。它在android上运行良好,但在iOS上却确实请求权限,但无法通过承诺拒绝检索值。

我尝试返回文档,以查看是否需要进行更改。该文档确实确实已更改为从Expo-sensors而不是expo导入。 我试过了,它不会更改iOS上的Promise拒绝。此外,使用此导入会为android提供一个错误,指出尚未实现使用日期。 我检查了expo-sensors文档,并且不赞成使用独立的expo-sensors,它是main分支的一部分,尽管expo docs说现在使用此导入。此外,您在其仿真器上的文档中的代码示例中也遇到了相同的错误,但我找不到关于iOS损坏的注释。

https://docs.expo.io/versions/latest/sdk/pedometer/

我正在使用的导入语法:

import {Pedometer} from 'expo';

以及我如何使用计步器:

Pedometer.isAvailableAsync().then(
          result => {
            this.setState({
              pedometerAvailability: String(result)
            });
          },
          error => {
            this.setState({
              pedometerAvailability: "No pedometer available: " + error
            });
          }
        );

        //start and end times for the day
        //Take date by the the diary date
        let endDay = new Date(Moment(diaryDate).toDate().valueOf());
        let startDay = new Date(Moment(diaryDate).toDate().valueOf());
        let today = new Date();
        //are we checking today? If not end day should be set as the end of the day
        if (today.getDay() !== endDay.getDay()){
            this.setTime(endDay, 23, 59, 59);
        }

        //setting time for startDay
        this.setTime(startDay, 0, 0, 0);

        //making call
        Pedometer.getStepCountAsync(startDay, endDay).then(
            result => {
                this.setState({
                    stepCount:result.steps
                });
            },
            error => {
                this.setState({
                    stepCount:"Could not get stepCount:" + error
                });
            }
        );
    };

    setTime = (date, h, m, s) =>{
        date.setHours(h);
        date.setMinutes(m);
        date.setSeconds(s);
    };

根据文档,iOS的行为应类似于Android,但是也许我在某个地方出错了?

0 个答案:

没有答案