【问题标题】:cordova background geolocation plugin on reboot重新启动时的科尔多瓦后台地理定位插件
【发布时间】:2017-04-14 17:58:41
【问题描述】:

我正在使用后台地理定位插件https://github.com/mauron85/cordova-plugin-background-geolocation 构建一个离子应用程序。

我想让一个应用在重启后发送它的位置。我使用的插件似乎有这个选项,但它不能正常工作。只有在每次启动后至少执行一次应用后,应用才会将其位置发送到服务器。

任何帮助或建议将不胜感激。提前谢谢!

我的代码在下面

配置

backgroundGeolocation.configure(callbackFn, failureFn, {
            locationProvider: backgroundGeolocation.provider.ANDROID_ACTIVITY_PROVIDER,
            desiredAccuracy: 10,
            stationaryRadius: 10,
            distanceFilter: 10,
            interval: 60000,
            maxLocations: 50,
            startOnBoot: true, // from my understanding, this should make an app track its location even after reboot
            stopOnTerminate: false
});

回调函数

var callbackFn = function(location) {
        console.log('[js] BackgroundGeolocation callback:  ' + location.latitude + ',' + location.longitude);

        // Do your HTTP request here to POST location to your server.
        var link = API_URL;

        $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";

        $http({
            method: 'POST',
            url: link,
            headers: {'Content-Type': 'application/x-www-form-urlencoded'},
            transformRequest: function(obj) {
                var str = [];
                for(var p in obj)
                str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
                return str.join("&");
            },
            params: {
                'device': 'android',
            },
            data: {
                lat:location.latitude,
                lng:location.longitude,
            }
        }).success(function(data){
            console.log(data);
        }).error(function(data){
            console.log(data);
        });

        backgroundGeolocation.finish();
    };

【问题讨论】:

    标签: ionic-framework cordova-plugins


    【解决方案1】:

    我希望您现在已经找到了答案,发布此内容也可能对其他人有所帮助。

    不要指望你的回调会在重启后执行,因为活动可能会被杀死,而是使用插件的 url 选项继续将你的位置更新发送到服务器。

    【讨论】:

    • 我能够在重新启动后使用配置中的选项 url 获取设备的位置。重新启动后回调函数会被终止,但是,当您使用配置选项发布设备的位置时,设备仍会将其位置发送到服务器。尝试在配置中使用选项url。检查文档
    • 如何使用回调函数,如 watchPosition 函数我的意思是,当应用程序在后台运行时,我想在特定时间间隔后定期获取设备的位置,我需要绘制折线。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    • 2015-05-31
    相关资源
    最近更新 更多