Monaca

Monacaで GoogleFit連携して歩数を取得する方法

Monacaを使っていて、Android向けにGoogleFitで歩数を取得する方法について、あれやこれやと調べてようやくうまく動きました。しかも、途中からは動いているのにそれと気づかず時間を沢山使ってしまったので、こちらでその手順についてまとめておきます。

dariosalvi78/cordova-plugin-health を読み込む
https://github.com/dariosalvi78/cordova-plugin-health
色々試してみた結果、こちらのプラグインで上手くいきました。

Monacaの「設定」>「Cordova Pluginの管理」>「Cordvaプラグインのインポート」を使って、URLに「https://github.com/dariosalvi78/cordova-plugin-health」を入力して「OK」を押してください、プラグインがプロジェクトに読み込まれます。

■config.xmlに記述を追加します。

<!-- Health plugin -->
<plugin name="cordova-plugin-health" source="npm">
<variable name="HEALTH_READ_PERMISSION" value="App needs read access"/>
<variable name="HEALTH_WRITE_PERMISSION" value="App needs write access"/>
<variable name="GMS_VERSION" value="16.0.1"/>
</plugin>

■歩数を取得するプログラムコードを記述(呼び出し部)

navigator.health.promptInstallFit(
    function (data) {
    navigator.health.requestAuthorization([
            {
                read: ['steps']
            }
        ],
            function (data) {
                navigator.health.queryAggregated({
                    startDate: new Date(new Date().getTime() - 27 * 24 * 60 * 60 * 1000),
                    endDate: new Date(),
                    dataType: 'steps',
                    bucket: 'day'
                }, query1monthSuccessCallback, quesryErrorCallback);
            },
            function (err) {
                ons.notification.alert({
                    title: 'エラー', message: '歩数を取得する権限が許可されていません。',
                    callback: function (index) {
                    }
                });
            }
        );
    },
    function (err) {
        //alert("この端末に、GoogleFitがインストールされていません。歩数の連携を行うにはGoogleFitアプリをインストールしてください。"+err);
        ons.notification.alert({
            title: 'エラー', message: 'この端末に、GoogleFitがインストールされていません。歩数の連携を行うにはGoogleFitアプリをインストールしてください。',
            callback: function (index) {
            }
        });
    }
);

■歩数を取得するプログラムコードを記述(コールバック関数)

var query1monthSuccessCallback = function (msg3) {
    //alert("1ヶ月:" + JSON.stringify(msg3))

    var total = 0;
    for (var i = msg3.length - 1; i >= 0; i--) {

        //alert(i)
        if (msg3[i]) {
            if (msg3[i].value) {
                total = total + msg3[i].value;
            }
        }
        // 繰り返し処理
        if (i == (msg3.length - 1)) {
            $('#stepToday').text(total.toFixed(1));
        } else if (i == (msg3.length - 14)) {
            $('#step2week').text((total / 14).toFixed(1));
        }
    }

    $('#step1month').text((total / (msg3.length)).toFixed(1));
    updateStepCount(false);
}

var errorCallback = function (msg) {
    //何もしない
};

関連記事

  1. Monacaで HealthKitに連携して歩数を取得する方法

コメント

    • 2019年 12月 05日

    お世話になります。
    monacaでGoogleFit連携を調べていてこちらに辿り着きました。
    公開いただいている内容を試したのですが、「navigator.health.requestAuthorization」を実行するとエラー関数のほうが実行され、「User cancelled the dialog」のメッセージが帰ってきました。
    何かご存知でしたら内容を補足していただければ幸いです。

  1. この記事へのトラックバックはありません。

おすすめ記事

Monacaで HealthKitに連携して歩数を取得する方法

MonacaでAndoridのGoogleFitを使って歩数を取得する方法について記事を創ったので…

Monacaで GoogleFit連携して歩数を取得する方法

Monacaを使っていて、Android向けにGoogleFitで歩数を取得する方法について、あれ…

サンプル記事5

サンプル記事5サンプル記事5サンプル記事5サンプル記事5サンプル記事5サンプル記事5サンプル記事5…

サンプル記事4

サンプル記事4サンプル記事4サンプル記事4サンプル記事4サンプル記事4サンプル記事4サンプル記事4…

ピックアップ記事

おすすめ記事

  1. Monacaで HealthKitに連携して歩数を取得する方法
  2. Monacaで GoogleFit連携して歩数を取得する方法
  3. サンプル記事5
PAGE TOP