Arhn - архитектура программирования

Включите мою систему отслеживания телефонного разговора Cordova GPS, чтобы она работала при загрузке или в качестве услуги

У меня есть система отслеживания gps для android phonegap cordova, которая отправляет местоположение в базу данных удаленного сервера в зависимости от базы данных (имя, пользователь и пароль) в файле php в приложении cordova.

  • серверная часть написана php и ее ок.
  • Моя проблема в том, что если я вернусь в приложение, оно перестанет отправлять данные о местоположении, потому что оно не работает в фоновом режиме.

мой вопрос:

Как сделать так, чтобы мое приложение работало при загрузке или в качестве службы в фоновом режиме, шаг за шагом, пожалуйста, я не профессионал :-)


  • Вы должны написать собственный код, это не работает с кордовой. Прежде чем начать думать об этом, прочтите руководства магазина, не все, что можно сделать, разрешено в общедоступном приложении. 23.02.2016
  • Привет, спасибо за ответ, вы имеете в виду, что это невозможно, и мне нужно начинать сначала @Joerg 23.02.2016

Ответы:


1

Фоновое географическое расположение Кордовы:

Сначала вам нужно добавить плагин backgroudgeolocation. , который помогает вам предоставлять услуги, которые необходимо добавить в ваше приложение.

Использование плагина

Плагин создает объект window.plugins.backgroundGeoLocation с помощью методов

configure(success, fail, option),

start(success, fail)

stop(success, fail).

Установка плагина:

плагин cordova добавить https://github.com/christocracy/cordova-plugin-background-geolocation.git АЧТУНГ! Если вы не используете Cordova 5.x, вы должны использовать ветку с тегами # cordova-4.x для установки плагина, как это (поскольку Cordova перешла на npm)

плагин cordova добавить https://github.com/christocracy/cordova-plugin-background-geolocation.git#cordova-4.x Полный пример:

//
//
// after deviceready
//
//

// Your app must execute AT LEAST ONE call for the current position via standard Cordova geolocation,
//  in order to prompt the user for Location permission.
window.navigator.geolocation.getCurrentPosition(function(location) {
    console.log('Location from Phonegap');
});

var bgGeo = window.plugins.backgroundGeoLocation;

/**
* This would be your own callback for Ajax-requests after POSTing background geolocation to your server.
*/
var yourAjaxCallback = function(response) {
    ////
    // IMPORTANT:  You must execute the #finish method here to inform the native plugin that you're finished,
    //  and the background-task may be completed.  You must do this regardless if your HTTP request is successful or not.
    // IF YOU DON'T, ios will CRASH YOUR APP for spending too much time in the background.
    //
    //
    bgGeo.finish();
};

/**
* This callback will be executed every time a geolocation is recorded in the background.
*/
var callbackFn = function(location) {
    console.log('[js] BackgroundGeoLocation callback:  ' + location.latitude + ',' + location.longitude);
    // Do your HTTP request here to POST location to your server.
    //
    //
    yourAjaxCallback.call(this);
};

var failureFn = function(error) {
    console.log('BackgroundGeoLocation error');
}

// BackgroundGeoLocation is highly configurable.
bgGeo.configure(callbackFn, failureFn, {
    url: 'http://only.for.android.com/update_location.json', // <-- Android ONLY:  your server url to send locations to
    params: {
        auth_token: 'user_secret_auth_token',    //  <-- Android ONLY:  HTTP POST params sent to your server when persisting locations.
        foo: 'bar'                              //  <-- Android ONLY:  HTTP POST params sent to your server when persisting locations.
    },
    headers: {                                   // <-- Android ONLY:  Optional HTTP headers sent to your configured #url when persisting locations
        "X-Foo": "BAR"
    },
    desiredAccuracy: 10,
    stationaryRadius: 20,
    distanceFilter: 30,
    notificationTitle: 'Background tracking', // <-- android only, customize the title of the notification
    notificationText: 'ENABLED', // <-- android only, customize the text of the notification
    activityType: 'AutomotiveNavigation',
    debug: true, // <-- enable this hear sounds for background-geolocation life-cycle.
    stopOnTerminate: false // <-- enable this to clear background location settings when the app terminates
});

// Turn ON the background-geolocation system.  The user will be tracked whenever they suspend the app.
bgGeo.start();

// If you wish to turn OFF background-tracking, call the #stop method.
// bgGeo.stop()

ПРИМЕЧАНИЕ. Плагин включает org.apache.cordova.geolocation в качестве зависимости. Вы должны включить GeoLocation Кордовы на переднем плане и попросить пользователя принять службы определения местоположения, выполнив #watchPosition или #getCurrentPosition.

Сначала скопируйте SampleApp из репозитория в любую желаемую папку (например, tmp).

$ cp -R cordova-plugin-background-geolocation/example/SampleApp ./tmp
$ cd tmp/SampleApp
$ cordova plugin add https://github.com/christocracy/cordova-plugin-background-geolocation.git
$ cordova platform add ios
$ cordova build ios

Для получения дополнительной информации щелкните ссылку ниже:

Геолокация фона Кордовы

Ура, удачного кодирования.

23.02.2016
  • Привет, спасибо за ответ, я застрял ... Вы можете помочь мне найти платную услугу для этого? @Nemo 23.02.2016
  • Проверьте ссылку в конце ответа. Вы найдете решение 24.02.2016
  • Привет, большое спасибо, мистер Немо, я имел в виду платную услугу по изменению моего приложения, а не для покупки нового приложения, мне сложно его изменить, если вы можете мне помочь, пришлите мне свой адрес электронной почты, я свяжусь с вами Спасибо @Nemo 24.02.2016
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..