Giter VIP home page Giter VIP logo

cordova-background-geolocation-sampleapp's Introduction

πŸ”· [Ionic 3] Cordova Background Geolocation β€” Demo

Google Play

Fully-featured Ionic-based sample-application for Cordova Background Geolocation

Home Settings

πŸ”· Installation

Step 1: Start by cloning this repo

$ git clone https://github.com/transistorsoft/cordova-background-geolocation-SampleApp.git

Step 2: Building and Running the Ionic 3 App

$ npm install

$ npm install -g cordova ionic # you should have ionic and cordova installed

$ ionic cordova prepare android
$ ionic cordova run android --device

$ ionic cordova prepare ios
$ ionic cordova run ios --emulator
// opens a web console which receives all your locations
$ npm run open  

The quickest way to see the plugin in-action is to boot the iOS simulator and simulate location with Freeway Drive.

The demo is composed of three separate and indpendant sub-applications implemented as Ionic page-modules.

πŸ”· Tracking Server

The demo app is configured to post locations to Transistor Software's demo server, which hosts a web-application for visualizing and filtering your tracking on a map.

  • After booting the app the first time, you'll be asked to enter a unique "Organization" (eg: your company name) and "Device ID" (eg: Github username) so the plugin can post locations to tracker.transistorsoft.com.

⚠️ Make your organization and Device ID unique and known only to you β€” if every one uses "test", you'll never find your device!)

πŸ”· Debug Mode

The plugin has a debug mode for field-testing. The plugin will emit sounds during its life-cycle events:

Event iOS Android
Exit stationary-region Dee-do Dee-do...Dee-do Dee-do n/a
Location recorded SMS-sent sound "blip"
Aggressive geolocation engaged SIRI listening sound "doodly-doo"
Acquiring location "tick, tick, tick" dial-tone sound
Stationary state "bloom" long "beeeeeeep"
Geofence crossing trumpets/fanfare beep-beep-beep

NOTE: In order for debug sounds to operate when the app is in background, you must enable the Audio and Airplay Background Mode.

πŸ”· Adding Geofences

The Advanced app implements a longtap event on the map. Simply tap & hold the map to initiate adding a geofence.

Tap-hold to add geofence

Enter an identifier, radius, notifyOnExit, notifyOnEntry.

cordova-background-geolocation-sampleapp's People

Contributors

andreykozlov1984 avatar christocracy avatar lfreneda avatar thebalaa avatar transistorsoft-pkg avatar woody0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cordova-background-geolocation-sampleapp's Issues

Run in Browser

When I run the app sample via ionic in browser (ionic serve), window.BackgroundGeolocation is undefined. Does it mean that I can't test my app in browser since I installed this plugin? Is there any way to inject this variables not only for ios\android build, but for Web as well? Thank you.

background geolocation not working in lolipop

i have used the repo link which you have mailed me and when opening geolocation app in kitkat, it asked me to
update google play service. After updating google play services, the app works perfectly.

when opening the app in lollipop, it did not ask me to upgrade google play service and also the app could not able
to get location. the app throws permission denied error.

cordova plugin add https://github.com/transistorsoft/cordova-background-geolocation-lt.git

Following screen shot has kitkat OS with google play version 9.0.82 (it's working fine)..
working

Following screen shot has lollipop OS with google play version 9.0.83 (it's not working )
not working

Issue when installing sample application

Hi ,

Having an issue with this line I think.

$ cordova plugin add https://github.com/transistorsoft/cordova-background-geolocation.git

Can't find the plugin from this line this line.

APPLEs-MacBook-Pro-2:cordova-background-geolocation-SampleApp UltimateCoder$ cordova plugin add https://github.com/transistorsoft/cordova-background-geolocation.git
Fetching plugin "https://github.com/transistorsoft/cordova-background-geolocation.git" via git clone
Username for 'https://github.com': SurviveDrive
Password for 'https://[email protected]':
Error: Failed to fetch plugin https://github.com/transistorsoft/cordova-background-geolocation.git via git.
Either there is a connection problems, or plugin spec is incorrect:
Error: git: Command failed with exit code 128 Error output:
Cloning into '/var/folders/jt/36vk3byn5g719m5c7qtmcw7c0000gn/T/git/1456447175107'...
remote: Repository not found.
fatal: repository 'https://github.com/transistorsoft/cordova-background-geolocation.git/' not found

Hope this is enough info

Kind regards
Kingsley Mitchell

Menu Does not work iOS

When I go to fire up the app in the emulator or on an iOS device, I run into an issue when selecting "Settings". The settings menu does not open and while looking at the log I see that it gives the following error:

"Error: undefined is not an object (evaluating '$platform.toUpperCase')"

playSound: function(action) {
      if ($plugin) {
        var soundId = $SOUNDS[action + '_' + $platform.toUpperCase()]; //issue
        if (soundId) {
          $plugin.playSound(soundId);
        } else {
          console.warn('Failed to locate sound-id "' + action + '"');
        }
      }
    }
  };

While researching, it looks as if this is no longer supported since jQuery 1.9. Can you verify that you get the same response?

User's loctaion coords is not updating while app is not running in memory

Hi,

As I am facing, User's location is not updating via our service api while app is not running in memory and user is moving from one block to another block. Below code I have implemented so far. Could you please look into once and let me know where I did wrong.

 function startBackgroundGeoLocation()
 {
  var bgGeo = window.BackgroundGeolocation;

/**
* This callback will be executed every time a geolocation is recorded in the background.
*/
var callbackFn = function(location, taskId) {

     /* Location object */
      $scope.updatedLocObj = {
          Latitude:location.coords.latitude,
          Longitude:location.coords.longitude
      }

      /* This is my service API call for update user's location */
      PublicServices.updateCurrentLocation($scope.updatedLocObj).then(function(resp) {
          bgGeo.finish(taskId);
      });
};

var failureFn = function(error) {
    //alert('BackgroundGeoLocation error');
}

// BackgroundGeoLocation is highly configurable.
bgGeo.configure(callbackFn, failureFn, {
    // Geolocation config
    desiredAccuracy: 0,
    stationaryRadius: 50,
    distanceFilter: 50,
    disableElasticity: false, // <-- [iOS] Default is 'false'.  Set true to disable speed-based distanceFilter elasticity
    locationUpdateInterval: 5000,
    minimumActivityRecognitionConfidence: 80,   // 0-100%.  Minimum activity-confidence for a state-change 
    fastestLocationUpdateInterval: 5000,
    activityRecognitionInterval: 10000,
    stopTimeout: 0,
    activityType: 'AutomotiveNavigation',

    // Application config
    debug: false, // <-- enable this hear sounds for background-geolocation life-cycle.
    forceReloadOnLocationChange: false,  // <-- [Android] If the user closes the app **while location-tracking is started** , reboot app when a new location is recorded (WARNING: possibly distruptive to user) 
    forceReloadOnMotionChange: false,    // <-- [Android] If the user closes the app **while location-tracking is started** , reboot app when device changes stationary-state (stationary->moving or vice-versa) --WARNING: possibly distruptive to user) 
    forceReloadOnGeofence: false,        // <-- [Android] If the user closes the app **while location-tracking is started** , reboot app when a geofence crossing occurs --WARNING: possibly distruptive to user) 
    stopOnTerminate: false,              // <-- [Android] Allow the background-service to run headless when user closes the app.
    startOnBoot: true,                   // <-- [Android] Auto start background-service in headless mode when device is powered-up.
});

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

Please help me out. Thanks.

Loading On Device Boot

Is there any way to add any additional functions to be called during the processing that occurs whenever the device is running. We would like to call some web service calls in the background that does not go away on device boot. It appears that the geolocation does run a background process that loads geolocation data into the geolocation database. Is there a way to add function/webservice calls during this processing?

If that is not available, is there you can explain how you are loading a Cordova/PhoneGap application in the background that survives a device reboot?

Push notification error

Hi ,

We have an issue with the plugin as followes:

When trying to add a push notification system on to the app with transistorsoft/cordova-background-geolocation on android we get the following error and ios just stops working.

When I uninstall the plugin transistorsoft/cordova-background-geolocation it works fine.

Below is the error

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/iid/MessengerCompat$1;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)

FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':transformClassesWithDexForDebug'.

    com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1 mins 56.288 secs
Error: Error code 1 for command: /Users/apple/USD/platforms/android/gradlew with args: cdvBuildDebug,-b,/Users/apple/USD/platforms/android/build.gradle,-PcdvBuildArch=arm,-Dorg.gradle.daemon=true,-Pandroid.useDeprecatedNdk=true

Reason

Multidex

If you have an issue compiling the app and you're getting an error similar to this (com.android.dex.DexException: Multiple dex files define):

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)
Then at least one other plugin you have installed is using an outdated way to declare dependencies such as android-support or play-services-gcm. This causes gradle to fail, and you'll need to identify which plugin is causing it and request an update to the plugin author, so that it uses the proper way to declare dependencies for cordova. See this for the reference on the cordova plugin specification, it'll be usefull to mention it when creating an issue or requesting that plugin to be updated.

Common plugins to suffer from this outdated dependency management are plugins related to facebook, google+, notifications, crosswalk and google maps.

Sample App loads fine on Simulator but Blank screen on IOS device

It ask for location and notification, no problem but when it finally loads the main screen the headers body and footer are all blank, just the blue divide lines are visible.

I think it might have to do with access external resources like maps.googleapis.com where the simulator has open permissions but a device might now.

Help when using Firebase as backend

Hi Chris,

I'm trying to use Firebase for my backend. They provide a javascript api and prefer not to use traditional client/server protocols.

Using your SampleApp, I've been able to post GPS coords to Firebase when changePace is true. Otherwise, when changePace is false, Firebase only receives the initial BackgroundGeolocation but does not update when the device moves. Markers are plotted and everything appears to be working on the plugin/app but without the firebase call.

Any tips or information would definitely help my development. Thank you in advance.

couple of quick question

Sorry for putting this here. Couldn't find your email address.
Based on your description I can see that it supports both iOS and Android.
if the application is closed completely will this plugin still detect the GeoLocation? (in Both iOS and Android)

The link to purchase the 'http://christocracy.github.io/cordova-background-geolocation/' is not loading!!

Lastly, Have you had any application submitted to Apple with this Plugin? sorry I just need to make sure that it will pass Apple review.

Thanks again.

App not working after building it

I build this sample app for Android platform. The plugin is not working.

my adb logcat shows following error

"exec() call to unknown plugin: BackgroundGeolocation"

I had updated SDK Manager, tried with a fresh install. Downgraded to Cordova version 5. Still it is not working.
Please let me know what i am missing.

http url ?

am using this application and set the url to point to my php page that read the post and insert it into mysql table, but i get 0 in latitude and longtitude !!? when i test the code on my ionic application it get the latitude and longtitude values and post them to the server but with delay like every 1 minute or around 800 m !! the setting am using in both my ionic app and on this application is the same

 desiredAccuracy: 0,

stationaryRadius: 30,
distanceFilter: 50,
locationUpdateInterval: 1000,
fastestLocationUpdateInterval: 1000,
activityRecognitionInterval:1000,
stopTimeout:0,

any help ?

Non-consistent GpsCordinate on disableElasticity

Hi
i tested this application from Google Platstore.
I changed following Settings.
distanceFilter : 10
disableElasticity : true.

Now whenever i start i starts getting reading after 300-500m. Sometimes the tracking stops and does not give any cordinates after 10-12 km. Smetimes it works fine.

Screen Shot 1, 2, 3
img-20160602-wa0015

img-20160602-wa0000
img-20160602-wa0020

See in the above images (1,2,3) cordinates are jumping not giving straight linear points.

Screenshot(4,5,6)
img-20160602-wa0003
img-20160602-wa0001
img-20160602-wa0016

In above images(4,5,6) the co-ordinates are not constant . They are not pinging afte 10m. When i start navigation from begining, it starts giving co-ordinates after 300-500m(sometimes after 1km)

I tested this app on same android model on three different vehicles(car, bus, bike) from same start and end point. They show different readings on diff vehicles.

The difference ranges from 300m -2km between app reading and actual reading.

Please let me know the solution as i want accuracy in it.

[iOS] Crashes when trying to send log

Hello,

I have an iPhone 5S with iOS 9.3.1.

Here are the logs:

2016-05-07 10:47:23.421 BG Geo[9031:5297354] β–Ί getState
2016-05-07 10:47:23.600 BG Geo[9031:5297354] This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes.  This will cause an exception in a future release.
 Stack:(
    0   CoreFoundation                      0x0000000181de2e50 <redacted> + 148
    1   libobjc.A.dylib                     0x0000000181447f80 objc_exception_throw + 56
    2   CoreFoundation                      0x0000000181de2d80 <redacted> + 0
    3   Foundation                          0x0000000182893afc <redacted> + 88
    4   Foundation                          0x0000000182714ccc <redacted> + 36
    5   UIKit                               0x00000001877bf7c0 <redacted> + 912
    6   UIKit                               0x00000001877c0d38 <redacted> + 788
    7   UIKit                               0x00000001877c096c <redacted> + 296
    8   UIKit                               0x00000001878903b8 <redacted> + 480
    9   UIKit                               0x000000018788d380 <redacted> + 172

    10  UIKit                               0x000000018788d5f0 <redacted> + 96
    11  UIKit                               0x000000018788dab4 <redacted> + 80
    12  UIKit                               0x0000000187892080 <redacted> + 492
    13  UIKit                               0x00000001878911ec <redacted> + 148
    14  UIKit                               0x000000018789112c <redacted> + 284
    15  UIKit                               0x00000001873a1f90 <redacted> + 444
    16  UIKit                               0x00000001873a2064 <redacted> + 60
    17  UIKit                               0x00000001873a21a4 <redacted> + 28
    18  UIKit                               0x00000001873a1754 <redacted> + 100
    19  UIKit                               0x0000000186f2cb40 <redacted> + 996
    20  UIKit                               0x0000000186f2c744 <redacted> + 28
    21  UIKit                               0x00000001872b4138 <redacted> + 108
    22  UIKit                               0x00000001872ad2c8 <redacted> + 1328
    23  UIKit                               0x00000001872aed64 <redacted> + 4644
    24  UIKit                               0x00000001872b17a0 <redacted> + 472
    25  UIKit                               0x00000001870272b4 <redacted> + 184
    26  UIKit                               0x000000018787e5c4 <redacted> + 512
    27  UIKit                               0x000000018787cb78 <redacted> + 228
    28  UIKit                               0x00000001873b2534 <redacted> + 260
    29  MessageUI                           0x000000018c752f94 <redacted> + 600
    30  BG Geo                              0x00000001000f3e98 -[TSLogManager emailLog:body:] + 124
    31  BG Geo                              0x0000000100102fe4 -[TSLocationManager emailLog:] + 316
    32  BG Geo                              0x00000001000cd1bc __37-[CDVBackgroundGeolocation emailLog:]_block_invoke + 168
    33  libdispatch.dylib                   0x00000001001c1a7c _dispatch_call_block_and_release + 24
    34  libdispatch.dylib                   0x00000001001c1a3c _dispatch_client_callout + 16
    35  libdispatch.dylib                   0x00000001001d0c9c _dispatch_root_queue_drain + 2344
    36  libdispatch.dylib                   0x00000001001d0364 _dispatch_worker_thread3 + 132
    37  libsystem_pthread.dylib             0x0000000181a45470 _pthread_wqthread + 1092
    38  libsystem_pthread.dylib             0x0000000181a45020 start_wqthread + 4
)
2016-05-07 10:47:23.613 BG Geo[9031:5297354] This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes.  This will cause an exception in a future release.
 Stack:(
    0   CoreFoundation                      0x0000000181de2e50 <redacted> + 148
    1   libobjc.A.dylib                     0x0000000181447f80 objc_exception_throw + 56
    2   CoreFoundation                      0x0000000181de2d80 <redacted> + 0
    3   Foundation                          0x0000000182893afc <redacted> + 88
    4   Foundation                          0x00000001828939c0 <redacted> + 56
    5   Foundation                          0x00000001827191ec <redacted> + 56
    6   Foundation                          0x0000000182714dac <redacted> + 260
    7   UIKit                               0x00000001877bf7c0 <redacted> + 912
    8   UIKit                               0x00000001877c0d38 <redacted> + 788
    9   UIKit                               0x00000001877c096c <redacted> + 296
    10  UIKit                               0x00000001878903b8 <redacted> + 480
    11  UIKit                               0x000000018788d380 <redacted> + 172
    12  UIKit                               0x000000018788d5f0 <redacted> + 96
    13  UIKit                               0x000000018788dab4 <redacted> + 80
    14  UIKit                               0x0000000187892080 <redacted> + 492
    15  UIKit                               0x00000001878911ec <redacted> + 148
    16  UIKit                               0x000000018789112c <redacted> + 284
    17  UIKit                               0x00000001873a1f90 <redacted> + 444
    18  UIKit                               0x00000001873a2064 <redacted> + 60
    19  UIKit                               0x00000001873a21a4 <redacted> + 28
    20  UIKit                               0x00000001873a1754 <redacted> + 100
    21  UIKit                               0x0000000186f2cb40 <redacted> + 996
    22  UIKit                               0x0000000186f2c744 <redacted> + 28
    23  UIKit                               0x00000001872b4138 <redacted> + 108
    24  UIKit                               0x00000001872ad2c8 <redacted> + 1328
    25  UIKit                               0x00000001872aed64 <redacted> + 4644
    26  UIKit                               0x00000001872b17a0 <redacted> + 472
    27  UIKit                               0x00000001870272b4 <redacted> + 184
    28  UIKit                               0x000000018787e5c4 <redacted> + 512
    29  UIKit                               0x000000018787cb78 <redacted> + 228
    30  UIKit                               0x00000001873b2534 <redacted> + 260
    31  MessageUI                           0x000000018c752f94 <redacted> + 600
    32  BG Geo                              0x00000001000f3e98 -[TSLogManager emailLog:body:] + 124
    33  BG Geo                              0x0000000100102fe4 -[TSLocationManager emailLog:] + 316
    34  BG Geo                              0x00000001000cd1bc __37-[CDVBackgroundGeolocation emailLog:]_block_invoke + 168
    35  libdispatch.dylib                   0x00000001001c1a7c _dispatch_call_block_and_release + 24
    36  libdispatch.dylib                   0x00000001001c1a3c _dispatch_client_callout + 16
    37  libdispatch.dylib                   0x00000001001d0c9c _dispatch_root_queue_drain + 2344
    38  libdispatch.dylib                   0x00000001001d0364 _dispatch_worker_thread3 + 132
    39  libsystem_pthread.dylib             0x0000000181a45470 _pthread_wqthread + 1092
    40  libsystem_pthread.dylib             0x0000000181a45020 start_wqthread + 4
)
2016-05-07 10:47:23.628 BG Geo[9031:5297354] This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes.  This will cause an exception in a future release.
 Stack:(
    0   CoreFoundation                      0x0000000181de2e50 <redacted> + 148
    1   libobjc.A.dylib                     0x0000000181447f80 objc_exception_throw + 56
    2   CoreFoundation                      0x0000000181de2d80 <redacted> + 0
    3   Foundation                          0x0000000182893afc <redacted> + 88
    4   Foundation                          0x0000000182714ccc <redacted> + 36
    5   UIKit                               0x00000001877bf810 <redacted> + 992
    6   UIKit                               0x00000001877c0d38 <redacted> + 788
    7   UIKit                               0x00000001877c096c <redacted> + 296
    8   UIKit                               0x00000001878903b8 <redacted> + 480
    9   UIKit                               0x000000018788d380 <redacted> + 172

    10  UIKit                               0x000000018788d5f0 <redacted> + 96
    11  UIKit                               0x000000018788dab4 <redacted> + 80
    12  UIKit                               0x0000000187892080 <redacted> + 492
    13  UIKit                               0x00000001878911ec <redacted> + 148
    14  UIKit                               0x000000018789112c <redacted> + 284
    15  UIKit                               0x00000001873a1f90 <redacted> + 444
    16  UIKit                               0x00000001873a2064 <redacted> + 60
    17  UIKit                               0x00000001873a21a4 <redacted> + 28
    18  UIKit                               0x00000001873a1754 <redacted> + 100
    19  UIKit                               0x0000000186f2cb40 <redacted> + 996
    20  UIKit                               0x0000000186f2c744 <redacted> + 28
    21  UIKit                               0x00000001872b4138 <redacted> + 108
    22  UIKit                               0x00000001872ad2c8 <redacted> + 1328
    23  UIKit                               0x00000001872aed64 <redacted> + 4644
    24  UIKit                               0x00000001872b17a0 <redacted> + 472
    25  UIKit                               0x00000001870272b4 <redacted> + 184
    26  UIKit                               0x000000018787e5c4 <redacted> + 512
    27  UIKit                               0x000000018787cb78 <redacted> + 228
    28  UIKit                               0x00000001873b2534 <redacted> + 260
    29  MessageUI                           0x000000018c752f94 <redacted> + 600
    30  BG Geo                              0x00000001000f3e98 -[TSLogManager emailLog:body:] + 124
    31  BG Geo                              0x0000000100102fe4 -[TSLocationManager emailLog:] + 316
    32  BG Geo                              0x00000001000cd1bc __37-[CDVBackgroundGeolocation emailLog:]_block_invoke + 168
    33  libdispatch.dylib                   0x00000001001c1a7c _dispatch_call_block_and_release + 24
    34  libdispatch.dylib                   0x00000001001c1a3c _dispatch_client_callout + 16
    35  libdispatch.dylib                   0x00000001001d0c9c _dispatch_root_queue_drain + 2344
    36  libdispatch.dylib                   0x00000001001d0364 _dispatch_worker_thread3 + 132
    37  libsystem_pthread.dylib             0x0000000181a45470 _pthread_wqthread + 1092
    38  libsystem_pthread.dylib             0x0000000181a45020 start_wqthread + 4
)
2016-05-07 10:47:23.638 BG Geo[9031:5297354] This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes.  This will cause an exception in a future release.
 Stack:(
    0   CoreFoundation                      0x0000000181de2e50 <redacted> + 148
    1   libobjc.A.dylib                     0x0000000181447f80 objc_exception_throw + 56
    2   CoreFoundation                      0x0000000181de2d80 <redacted> + 0
    3   Foundation                          0x0000000182893afc <redacted> + 88
    4   Foundation                          0x00000001828939c0 <redacted> + 56
    5   Foundation                          0x00000001827191ec <redacted> + 56
    6   Foundation                          0x0000000182714dac <redacted> + 260
    7   UIKit                               0x00000001877bf810 <redacted> + 992
    8   UIKit                               0x00000001877c0d38 <redacted> + 788
    9   UIKit                               0x00000001877c096c <redacted> + 296
    10  UIKit                               0x00000001878903b8 <redacted> + 480
    11  UIKit                               0x000000018788d380 <redacted> + 172
    12  UIKit                               0x000000018788d5f0 <redacted> + 96
    13  UIKit                               0x000000018788dab4 <redacted> + 80
    14  UIKit                               0x0000000187892080 <redacted> + 492
    15  UIKit                               0x00000001878911ec <redacted> + 148
    16  UIKit                               0x000000018789112c <redacted> + 284
    17  UIKit                               0x00000001873a1f90 <redacted> + 444
    18  UIKit                               0x00000001873a2064 <redacted> + 60
    19  UIKit                               0x00000001873a21a4 <redacted> + 28
    20  UIKit                               0x00000001873a1754 <redacted> + 100
    21  UIKit                               0x0000000186f2cb40 <redacted> + 996
    22  UIKit                               0x0000000186f2c744 <redacted> + 28
    23  UIKit                               0x00000001872b4138 <redacted> + 108
    24  UIKit                               0x00000001872ad2c8 <redacted> + 1328
    25  UIKit                               0x00000001872aed64 <redacted> + 4644
    26  UIKit                               0x00000001872b17a0 <redacted> + 472
    27  UIKit                               0x00000001870272b4 <redacted> + 184
    28  UIKit                               0x000000018787e5c4 <redacted> + 512
    29  UIKit                               0x000000018787cb78 <redacted> + 228
    30  UIKit                               0x00000001873b2534 <redacted> + 260
    31  MessageUI                           0x000000018c752f94 <redacted> + 600
    32  BG Geo                              0x00000001000f3e98 -[TSLogManager emailLog:body:] + 124
    33  BG Geo                              0x0000000100102fe4 -[TSLocationManager emailLog:] + 316
    34  BG Geo                              0x00000001000cd1bc __37-[CDVBackgroundGeolocation emailLog:]_block_invoke + 168
    35  libdispatch.dylib                   0x00000001001c1a7c _dispatch_call_block_and_release + 24
    36  libdispatch.dylib                   0x00000001001c1a3c _dispatch_client_callout + 16
    37  libdispatch.dylib                   0x00000001001d0c9c _dispatch_root_queue_drain + 2344
    38  libdispatch.dylib                   0x00000001001d0364 _dispatch_worker_thread3 + 132
    39  libsystem_pthread.dylib             0x0000000181a45470 _pthread_wqthread + 1092
    40  libsystem_pthread.dylib             0x0000000181a45020 start_wqthread + 4
)
2016-05-07 10:47:23.651 BG Geo[9031:5297354] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a nil modal view controller on target <MainViewController: 0x15ed697e0>.'
*** First throw call stack:
(0x181de2e38 0x181447f80 0x1872aeec4 0x1872b17a0 0x1870272b4 0x1000f3fc8 0x100102fe4 0x1000cd1bc 0x1001c1a7c 0x1001c1a3c 0x1001d0c9c 0x1001d0364 0x181a45470 0x181a45020)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

Intermittent Permission Dialog Box on iOS Devices

I have seen, when my app is triggering to init background geolocation service. In few seconds sometimes I got a dialog box on iOS devices. It says, '...access your Motion & Fitness Activity'. But This is not coming every time even I deleted the app and install it again.

I have checked my application permissions in device settings, there are always toggle on for Motion & Fitness Activity even I didn't get permission dialog box while init background geolocation service.

Please clear me on which scenario it will ask for permission or not.

And also can we modify the message when requesting the permission?

Thanks

Could not detect BackgroundGeolocation API - happens from the first run after clone

Hi,
I just did clone the project and then started the project, ionic serve, then I noticed this message in the console log of the browser:
Could not detect BackgroundGeolocation API

I did deploy on iOS and noticed the gps is not working, any idea how this service stopped working ?

Note: I cloned this projects days a ago and developed on top of it, then the I fced the same issue.

Prenium repo 404

FYI

Your url to prenium repo gives a 404 in https://github.com/transistorsoft/cordova-background-geolocation-SampleApp/blob/master/README.md

A. Premium Version (requires paid license)
$ cordova plugin add https://github.com/transistorsoft/cordova-background-geolocation.git

Update documentation

Hi Chris,

I think you have to update the documentation slightly.

cordova plugin add cordova-plugin-device cordova-plugin-console cordova-plugin-whitelist cordova-plugin-splashscreen ionic.plugin.keyboard

gives an error on the ionic.plugin.keyboard

The ionic keyboard plugin has become ionic-plugin-keyboard

This worked for me:
cordova plugin add cordova-plugin-device cordova-plugin-console cordova-plugin-whitelist cordova-plugin-splashscreen ionic-plugin-keyboard

Post Additional data to server

I need to POST additional data to my server and I was struggling on were I would add the extra data in context to the Sample app. Can you provide any guidance with the "extras" parameters that can be passed in the getCurrentPosition function? I see the following:

getCurrentPosition: function(callback, failure, options) {
            // options = window.localStorage.getItem('device')
            if ($plugin) {
                $plugin.getCurrentPosition(callback, failure, options);
            }
        },

How would I add my extra parameters? Your assistance is greatly appreciated.

Plugin Needs Data Storage Permission For Marshmallow

When we use the plugin on Marshmallow it requires Data Storage permission and it does not ask for it. We are required to manually give it permission and the plugin should initiate the request when used. This is so it can store all of the geolocation data in the SQLite database it uses.

Difference in Kilometer Tracking and no disableElasticity option in Sample App

I am building a kilometer tracking app in Android for car and bike riders.

I tried the Sample App. I am facingthe following issues

1 -Kilometer Reading starts after 300-400 m.
2 - There always a difference of 100-1000 m in actual reading.The kilometer reading is different for car and bike. In car it shows 100-300 m difference whereas in bike it shows 700-1000 m difference
3 - When we stop and start moving again there is a difference of more than 1 km.

i only changed distanceFilter to 50 in the Sample App.

Please help me to solve this issue as i need accurate reading

SampleApp is just terminated on the android device.

My phone is Nexus 5. I bought a premium version last night.
I built successfully my ionic app based on SampleApp. I just modified widget id and appended licence value and orderId value from you.
When I ran my app in my device nexus5 with typing "cordova run" in the command line, the app is shut down .
And I have debugged my app with "adb logcat" and I received below error messages in the console.

11-17 16:01:19.702 19065 19065 I TSLocationManager: - PRUNE -1days
11-17 16:01:19.723 19065 19065 I TSLocationManager: - GooglePlayServices connected
11-17 16:01:19.732 19065 19065 D AndroidRuntime: Shutting down VM
11-17 16:01:19.733 19065 19065 E AndroidRuntime: FATAL EXCEPTION: main
11-17 16:01:19.733 19065 19065 E AndroidRuntime: Process: xyz.zolywood.gpstracker.ionic, PID: 19065
11-17 16:01:19.733 19065 19065 E AndroidRuntime: java.lang.SecurityException: Client must have ACCESS_FINE_LOCATION permission to request PRIORITY_HIGH_ACCURACY locations.
11-17 16:01:19.733 19065 19065 E AndroidRuntime:    at android.os.Parcel.readException(Parcel.java:1599)
11-17 16:01:19.733 19065 19065 E AndroidRuntime:    at android.os.Parcel.readException(Parcel.java:1552)

So I built your SampleApp but I had received same error messages.

I wondered if ACCESS_FINE_LOCATION permission was not appended, so I opened config.xml file and androidmanifest.xml file. All permissions were appended.

How can I solve this problem?

thanks.

ios build issue

Went through your ios building instructions and got this error after running cordova build ios. Any help would be appreciated

duplicate symbol _llvm.cmdline in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(SOMotionDetector.o)
duplicate symbol _llvm.embedded.module in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(SOMotionDetector.o)
duplicate symbol _llvm.cmdline in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(TSLogger.o)
duplicate symbol _llvm.embedded.module in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(TSLogger.o)
duplicate symbol _llvm.cmdline in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(LocationManager.o)
duplicate symbol _llvm.embedded.module in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(LocationManager.o)
duplicate symbol _llvm.cmdline in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(TSLogManager.o)
duplicate symbol _llvm.embedded.module in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(TSLogManager.o)
duplicate symbol _llvm.cmdline in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(LocationDAO.o)
duplicate symbol _llvm.embedded.module in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(LocationDAO.o)
duplicate symbol _llvm.cmdline in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(TSReachability.o)
duplicate symbol _llvm.embedded.module in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(TSReachability.o)
duplicate symbol _llvm.cmdline in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(TSLocationManager.o)
duplicate symbol _llvm.embedded.module in:
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(Settings.o)
    BG Geo/Plugins/com.transistorsoft.cordova.background-geolocation/TSLocationManager.framework/TSLocationManager(TSLocationManager.o)
ld: 14 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** BUILD FAILED **


The following build commands failed:
    Ld build/emulator/BG\ Geo.app/BG\ Geo normal i386
(1 failure)
Error: Error code 65 for command: xcodebuild with args: -xcconfig,/Users/dmvaldman/Code/cordova-background-geolocation-SampleApp/platforms/ios/cordova/build-debug.xcconfig,-project,BG Geo.xcodeproj,ARCHS=i386,-target,BG Geo,-configuration,Debug,-sdk,iphonesimulator,build,VALID_ARCHS=i386,CONFIGURATION_BUILD_DIR=/Users/dmvaldman/Code/cordova-background-geolocation-SampleApp/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Users/dmvaldman/Code/cordova-background-geolocation-SampleApp/platforms/ios/build/sharedpch

Doesn't work with ionic

Cannot read property 'backgroundGeoLocation' of undefined :(

ionic.Platform.ready(function(){

var options = {

};
  $cordovaBackgroundGeolocation.configure(options)
.then(
  null, // Background never resolves
  function (err) { // error callback
    console.error(err);
  },
  function (location) { // notify callback
    console.log(location);
  });


$scope.stopBackgroundGeolocation = function () {
  $cordovaBackgroundGeolocation.stop();
};
})

System specs for building sample app

Can you please modify the instructions for building the sample app to include recommended versions of the tools necessary to build?

  • ionic
  • xcode
  • Mac OS (Yosemite? El Capitan)
  • Cordova

Passing header to server

Chris,

I had a quick question about passing headers in the demo app. From my understanding, or lack thereof, of the documentation I need to set the 'headers in the "configurePlugin" of the demo app. Here is my current set up:

configurePlugin: function (bgGeoPlugin) {
            //Get Basic Device Information
            var device = ionic.Platform.device();
            $platform = device.platform;

            var me = this;
            var config = this.getConfig();
            config.params = config.params || {
                };

            $plugin = bgGeoPlugin;

            // Configure BackgroundGeolocation Plugin
            $plugin.configure(fireLocationListeners, function (error) {
                console.warn('BackgroundGeolocation Error: ' + error);
            }, config);


            var deviceObj = {
                'imeiEsn': window.localStorage.getItem('imei'),
                'phoneNumber': window.localStorage.getItem('phoneNumber')
            };

            deviceObj['device'] = device;

            config.params.device = deviceObj;
            config.headers = {
                "API-Key": "XXXXXXXXXXXXXXXXX"
            };
            window.localStorage.setItem('device', JSON.stringify(config.params.device));

            if (this.getEnabled()) {
                $plugin.start();
            }
        },

I am passing the header as

 config.headers = {
                "API-Key": "XXXXXXXXXXXXXXXXX"
            };

I don't think this is correct and was curious if you could provide a little guidance.

Thanks in advance.

Getting Blank Lat and Long On IOS

We are getting are getting a lot of customers where the lat and long are zero when the app is used. There is no rhyme or reason why it is coming up blank. I have guaranteed that the location services are on and the app has always permission for the location services.

What would cause zero lat and long?

GPS Sensor inactive

Hi there,

i installed the SampleApp on my Moto E (2nd Gen, Android Version 5.0.2) and it works without any problems.

As I try to run the same apk on my Samsung Galaxy S III Neo (Android Version 4.4.2) the gps sensor is not activated. Even the GPS Icon in the status bar does not appear.

I checked the sensor using Google Maps on the Galaxy S III Neo. I only experience this issue within the SampleApp.

IΒ΄m quite confused. Can you give me a hint whether i am doing something wrong?

Kind Regards,
Christian

Android dependency issue

Hi,

Awesome plugin! Got it working beautifully with iOS, but having a tough time with Android...

Running 'cordova android build' throws this exception:

A problem occurred configuring root project 'android'.
> Could not resolve all dependencies for configuration ':_debugCompile'.
   > Could not find com.android.support:support-v4:22.2.0.
     Searched in the following locations:
         https://repo1.maven.org/maven2/com/android/support/support-v4/22.2.0/support-v4-22.2.0.pom
         https://repo1.maven.org/maven2/com/android/support/support-v4/22.2.0/support-v4-22.2.0.aar
         https://jcenter.bintray.com/com/android/support/support-v4/22.2.0/support-v4-22.2.0.pom
         https://jcenter.bintray.com/com/android/support/support-v4/22.2.0/support-v4-22.2.0.aar
         file:/Users/[hidden]/gdrive/web/code/repos/cordova-background-geolocation-SampleApp/platforms/android/src/android/libs/support-v4-22.2.0.aar
         file:/Users/[hidden]/gdrive/web/code/repos/cordova-background-geolocation-SampleApp/platforms/android/src/android/libs/support-v4.aar
         file:/Users/[hidden]/.meteor/android_bundle/android-sdk/extras/google/m2repository/com/android/support/support-v4/22.2.0/support-v4-22.2.0.pom
         file:/Users/[hidden]/.meteor/android_bundle/android-sdk/extras/google/m2repository/com/android/support/support-v4/22.2.0/support-v4-22.2.0.aar
     Required by:
         :android:unspecified > com.google.android.gms:play-services:7.8.0 > com.google.android.gms:play-services-base:7.8.0
   > Could not find com.android.support:mediarouter-v7:22.2.0.
     Searched in the following locations:
         https://repo1.maven.org/maven2/com/android/support/mediarouter-v7/22.2.0/mediarouter-v7-22.2.0.pom
         https://repo1.maven.org/maven2/com/android/support/mediarouter-v7/22.2.0/mediarouter-v7-22.2.0.aar
         https://jcenter.bintray.com/com/android/support/mediarouter-v7/22.2.0/mediarouter-v7-22.2.0.pom
         https://jcenter.bintray.com/com/android/support/mediarouter-v7/22.2.0/mediarouter-v7-22.2.0.aar
         file:/Users/[hidden]/gdrive/web/code/repos/cordova-background-geolocation-SampleApp/platforms/android/src/android/libs/mediarouter-v7-22.2.0.aar
         file:/Users/[hidden]/gdrive/web/code/repos/cordova-background-geolocation-SampleApp/platforms/android/src/android/libs/mediarouter-v7.aar
         file:/Users/[hidden]/.meteor/android_bundle/android-sdk/extras/google/m2repository/com/android/support/mediarouter-v7/22.2.0/mediarouter-v7-22.2.0.pom
         file:/Users/[hidden]/.meteor/android_bundle/android-sdk/extras/google/m2repository/com/android/support/mediarouter-v7/22.2.0/mediarouter-v7-22.2.0.aar
     Required by:
         :android:unspecified > com.google.android.gms:play-services:7.8.0 > com.google.android.gms:play-services-cast:7.8.0

Looks like I have the right dependencies in the sdk manager:

screen shot 2015-09-11 at 12 46 42 pm
screen shot 2015-09-11 at 12 46 59 pm

Path looks right...
cordova-background-geolocation-SampleApp git:(master) echo $ANDROID_HOME
/Users/[hidden]/.meteor/android_bundle/android-sdk

Any ideas?

Thanks!

Error

Alert: Failed to change pace: Class not found :/

GeoLocation not working on ios

Hello,

I tried installing this application, and the geolocation is not working. It never asks me for my location, and when I click the locate icon in the bottom left corner, it does not take me to my current location. I have the switch in the top right set to on. What am I doing wrong? (I am on ios 8).

Thanks!

Default app not POSTing to server - but accesses url

Hello,

I managed to get the sample app installed -- after figuring out I needed to update XCode. It seems to be recording its location just fine. However, it is not sending its location to the test server I set up. So to do another test, an associate of mine wrote a script that logs all get and post requests to the server. It was accessing the URL, but there was nothing contained in the Get or POST php arrays. Do you know why this might be?

(Note this is with it set to POST to the server)

IOS StoponTerminate false - won't restart

I've followed best practices - or so I believe in developing my app, however, it will not despite best effort - restart after a terminate event. The app starts in the log - however, it will not relaunch my geo code.

In order to debug - I reviewed the sample app (which I believe is Ionic - I'm using a jquery builder) - and have taken the app, created a new app which only has a button on the screen to launch geo-location. I have a JS support file, and the balance which is-has been supplied via the builder I'm using (Appery.io).

The app functions wonderfully in foreground, background, and on Android, and produces the desired results both in the full app and in my sample app.

However, I'm stuck on getting the app to launch on IOS after terminate. Can you help? If I need to purchase paid support for this issue - and you believe you can help - I'm glad to make that investment as the restart is a business requirement.

Below - my Javascript, and I've attached my IOS project file - as exported from xCode as well as the log extract from startup , terminate, and then where it boots the app - but does not restart my geo-code..

========================================Javascript=====================
var berror = false;
var obluemarker;
var bgeoon = false;
var nlastloggedtime = 0;
var ngpsage = 60000;
var bstarted = false;
var BackgroundGeoLocation;
var dLastGeoPoint = new Date();
var dLastMotionPoint = new Date();
//var oGeoObject2Post = Apperyio.getModel('oGeo2Log');

dLastGeoPoint.setDate(dLastGeoPoint.getDate() - 1);

//fRestartGeo('reload');


//setTimeout( function(){ fRestartGeo('reload'); }, 30000) ;

function fRestartGeo( sMethod ) {
    var bResult = false;
    var bRestart = fLocalGet('bInSuspendMode', 'boolean');
    console.log('In Geolocation restart method - for Method:' + sMethod + " and restart is set to :" + bRestart,toString() );
    if ( !bRestart ) {
        console.log('Not in restart mode....');
        return false;
    }
    if (fLocalGet('bRestartingGeo', 'boolean')) {
        console.log('Geo Restart already in progress...');
        return false;
    }
    fLocalSet('bRestartingGeo', true);
    if ((BackgroundGeoLocation === undefined || BackgroundGeoLocation === null) && window.window.BackgroundGeolocation !== undefined  ) {
        console.log('attempting to restart geolocation...')
        fwatchmyposition();
        console.log('Geo restart complete');
    } else {
        console.log('Background Geolocation already started or is undefined...');
    }
    fLocalSet('bRestartingGeo', 'false');
}



function fturnoffgeowatch(bForReal) {
    //navigator.geolocation.clearWatch(geowatchID);
    //geowatchID = 0;
    if (bForReal === undefined || bForReal === null) {
        bForReal = false;
    }
    if (BackgroundGeoLocation !== undefined && bForReal) {
        BackgroundGeoLocation.stop();
        localStorage.setItem('bGeoOn', false);
        //BackgroundGeoLocation = undefined ;
    }
    return;
}

// Build a new fence in the Database with the current location ...


function fwatchmyposition() {
    var adata;
    var aSW;
    var aNE;
    var oSW;
    var oNE;
    var oOptions;
    var nDistanceFilter = 30;
    var nGPSLogFrequency = 30000; 
    var bDebug = true;
    var sUrl = "https://api.appery.io/rest/1/db/collections/GeoEventHistory";
    var nFastest = nGPSLogFrequency - 5000;
    // I. Set up background geolocation....
    console.log('Starting call to background GeoLocation......');
    if ( (BackgroundGeoLocation === undefined || BackgroundGeoLocation === null) && window.BackgroundGeolocation !== undefined  ) {
        console.log('assigning background geolocation from window....');
        BackgroundGeoLocation = window.BackgroundGeolocation;
    }
    if (BackgroundGeoLocation !== undefined) {
        console.log('using IOS configuration.....');
        oOptions = {
            desiredAccuracy: 0,
            stationaryRadius: 20,
            startOnBoot: true,
            stopTimeout: 5,
            stopDetectionDelay: 3,
            distanceFilter: nDistanceFilter,
            locationUpdateInterval: nGPSLogFrequency,
            activityRecognitionInterval: nGPSLogFrequency,
            fastestLocationUpdateInterval: nFastest,
            activityType: 'Other',
            debug: bDebug, // <-- enable this hear sounds for background-geolocation life-cycle.
            //url : sUrl ,
            //params : oGeoObject2Post,
            //headers : oHeaders,
            stopOnTerminate: false // <-- enable this to clear background location settings when the app terms
        }
        try {
            console.log('Starting Geolocation configure event....');
            console.log(JSON.stringify(oOptions));
            var bResult = fStartMotionServices();
            BackgroundGeoLocation.configure(oOptions, fStartGeo, geoFailureFN);
            //BackgroundGeoLocation.configure(fStartGeo, geoFailureFn, oOptions);
        } catch (e) {
             //alert('Error turning on Geolocation configuration: ' + e);
            console.log('Error turning on Geolocation....');
        }
        //fUpdateGeoStructure();
    } else {
        console.log('Background Geolocation function not found....');
    }
    return;
}


function fStartGeo(state) {
    bgeoon = true;
    localStorage.setItem('bGeoOn', true);
    console.log('background Geolocation configuration success');
    console.log('- Current state: ', state);
    console.log('- Geolocation - asking question - Am I enabled (should be not yet - false)?', state.enabled);
    if (!state.enabled || state.enabled === undefined) {
        try {
            BackgroundGeoLocation.start() //fStartMotionServices); //geoCallbackFn, geoFailureFn);
            console.log('started background GeoLocation');
        } catch (e) {
            console.log('Unable to start BackgroundGeoLocation Function...');
        }
    } else {
        // services already started.... start the motion services....
        console.log('background geoLocation already enabled...');
    }
}


function fStartMotionServices() {
    console.log('starting-re-configuring Motion and Location change services....');
    //console.log('starting onlocation service...');
    BackgroundGeoLocation.onLocation(fgeoCallbackFn);
    //console.log('starting on motion service....');
    BackgroundGeoLocation.onMotionChange(fGeoMotionCallback);
    console.log('Complete with configure of location serverice and motion change services');
}

function fgeoCallbackFn(oLocation, nTaskID) {
    // called when the device is in motion.....
    // fLocalSet('nTaskID', taskId); - this confuses the Kill process - comment it out
    //dCurrent = new Date();
    // this is where the error is - no longer at the old number 
    // change this
    console.log('The task id is :' , nTaskID );
    /* check the difference in the current date - time against the setting for number of seconds - to process a geo - event... */
    //fUpdateGeoStructure();
    console.log('location change sensed-location is: ' + JSON.stringify( oLocation  ) + 'task id: ' + nTaskID.toString() )
    fFinishGeo( nTaskID ) ;
    //fSeeIfInABoundary(location, taskId, false);
}

function fGeoMotionCallback(bIsMoving, olocation, nTaskID ) {
    // called when the device stops or starts.....
    var dCurrent = new Date();
    // fLocalSet('nTaskID', nTaskId); - confuses the kill process ..... 
    fLocalSet('bIsMoving', bIsMoving);
    //
    // log a geoEvent for the display - for sure here....
    //
    console.log('motion change sensed - location is: ' + JSON.stringify( oLocation  ) + 'task id: ' + nTaskID.toString() )    
    fFinishGeo(nTaskID);
}

function geoFailureFN(error) {
    console.log("Error starting geolocation :" + error);
    fBackgroundGeoLocationError(error);
}

function fsetcurrentposition() {
    // purpose of this function is to move the most recently stored position that is in local storage - to the object - ocurrentposition ( a google lat,lang object )
    var nlat = Number(localStorage.getItem('s_lat'));
    var nlong = Number(localStorage.getItem('s_long'));
[Software_Studio_Geolocation_Plugin.zip](https://github.com/transistorsoft/cordova-background-geolocation-SampleApp/files/404293/Software_Studio_Geolocation_Plugin.zip)

    var options = {
        lat: nlat,
        lng: nlong
    };
    ocurrentposition = new google.maps.LatLng(nlat, nlong);
    console.log('ocurrentposition is:' + ocurrentposition);
    return;
}

function fFinishGeo(nTask) {
    console.log('finishing call to geoLocation for ' + nTask);
    if (BackgroundGeoLocation !== undefined) {
        BackgroundGeoLocation.finish(nTask); // call the finish routine directly
    }
    return;
}

===========================End JS=============================

======== Relevant part of system log showing startup and then IOS restarting the app - but not the geo=========================================

╔═════════════════════════════════════════════════
Aug  5 10:32:34 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•‘TSLocationManager β–Ί HTTP
Aug  5 10:32:34 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╠═════════════════════════════════════════════════
Aug  5 10:32:34 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ autoSync? 1
Aug  5 10:32:34 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ Network available? 1
Aug  5 10:32:34 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ Is already transmitting? 0
Aug  5 10:32:34 74-80-239-249 SpringBoard[6475]: No image found for recordID 0:13130c23cc96039:492111154.608188 yet we're being asked for a scale
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: 

    <+37.33021261,-122.02671669> +/- 10.00m (speed 4.09 mps / course 91.50) @ 8/5/16, 10:32:42 AM Pacific Daylight Time
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╔═════════════════════════════════════════════════
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•‘TSLocationManager β–Ί didUpdateLocation
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╠═════════════════════════════════════════════════
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ enabled: 1
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ isMoving: 1
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ distanceFilter: 30.0
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: Delta d: 34.171386, df: 30.000000
Aug  5 10:32:42 74-80-239-249 assertiond[6479]: assertion failed: 15F34 13E230: assertiond + 15801 [3C808658-78EC-3950-A264-79A64E0E463B]: 0x1
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β–Ί createBackgroundTask: 27
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: 
    <+37.33021261,-122.02671669> +/- 10.00m (speed 4.09 mps / course 91.50) @ 8/5/16, 10:32:42 AM Pacific Daylight Time
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╔═════════════════════════════════════════════════
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•‘TSLocationManager β–Ί Process Location
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╠═════════════════════════════════════════════════
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: βœ“ Median location accuracy: 10.0
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: βœ“ Increment odometer: 61074.1
Aug  5 10:32:42 74-80-239-249 assertiond[6479]: assertion failed: 15F34 13E230: assertiond + 15801 [3C808658-78EC-3950-A264-79A64E0E463B]: 0x1
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: βœ“ stopBackgroundTask: 27 OF (
    )
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: βœ“ INSERT: 422F40FA-736B-4CDA-9516-4DF4C8B121D7
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╔═════════════════════════════════════════════════
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•‘TSLocationManager β–Ί HTTP
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╠═════════════════════════════════════════════════
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ autoSync? 1
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ Network available? 1
Aug  5 10:32:42 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ Is already transmitting? 0
Aug  5 10:32:42 74-80-239-249 SpringBoard[6475]: No image found for recordID 0:13130c23cc96039:492111162.593029 yet we're being asked for a scale
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: 

    <+37.33020389,-122.02635116> +/- 10.00m (speed 3.86 mps / course 90.03) @ 8/5/16, 10:32:50 AM Pacific Daylight Time
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╔═════════════════════════════════════════════════
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•‘TSLocationManager β–Ί didUpdateLocation
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╠═════════════════════════════════════════════════
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ enabled: 1
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ isMoving: 1
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ distanceFilter: 30.0
Aug  5 10:32:50 74-80-239-249 assertiond[6479]: assertion failed: 15F34 13E230: assertiond + 15801 [3C808658-78EC-3950-A264-79A64E0E463B]: 0x1
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: Delta d: 32.408958, df: 30.000000
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β–Ί createBackgroundTask: 28
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: 
    <+37.33020389,-122.02635116> +/- 10.00m (speed 3.86 mps / course 90.03) @ 8/5/16, 10:32:50 AM Pacific Daylight Time
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╔═════════════════════════════════════════════════
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•‘TSLocationManager β–Ί Process Location
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╠═════════════════════════════════════════════════
Aug  5 10:32:50 74-80-239-249 assertiond[6479]: assertion failed: 15F34 13E230: assertiond + 15801 [3C808658-78EC-3950-A264-79A64E0E463B]: 0x1
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: βœ“ Median location accuracy: 10.0
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: βœ“ stopBackgroundTask: 28 OF (
    )
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: βœ“ Increment odometer: 61106.5
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: βœ“ INSERT: 9794E721-F8FE-4D93-9DEB-DC2629B569FA
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╔═════════════════════════════════════════════════
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•‘TSLocationManager β–Ί HTTP
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╠═════════════════════════════════════════════════
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ autoSync? 1
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ Network available? 1
Aug  5 10:32:50 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ Is already transmitting? 0
Aug  5 10:32:50 74-80-239-249 SpringBoard[6475]: Unbalanced calls to begin/end appearance transitions for <SBBannerButtonViewController: 0x7fd8c36062f0>.
Aug  5 10:32:50 74-80-239-249 SpringBoard[6475]: No image found for recordID 0:13130c23cc96039:492111170.589188 yet we're being asked for a scale
Aug  5 10:32:52 74-80-239-249 assertiond[6479]: assertion failed: 15F34 13E230: assertiond + 15801 [3C808658-78EC-3950-A264-79A64E0E463B]: 0x1
Aug  5 10:32:52 74-80-239-249 SpringBoard[6475]: BSXPCMessage received error for message: Connection interrupted
Aug  5 10:32:52 74-80-239-249 assertiond[6479]: assertion failed: 15F34 13E230: assertiond + 15801 [3C808658-78EC-3950-A264-79A64E0E463B]: 0x1
Aug  5 10:32:52 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: - CDVBackgroundFetch onAppTerminate
Aug  5 10:32:52 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: - stopping background-fetch
Aug  5 10:32:52 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╔═════════════════════════════════════════════════
Aug  5 10:32:52 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•‘TSLocationManager β–Ί Destroy
Aug  5 10:32:52 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: ╠═════════════════════════════════════════════════
Aug  5 10:32:52 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β•Ÿβ”€ stopOnTerminate: 0
Aug  5 10:32:52 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: β–Ί Motion-detector: OFF
Aug  5 10:32:52 74-80-239-249 Software_Studio_Geolocation_Plugin[6530]: βœ“ create stationary geofence, radius: 32
Aug  5 10:32:52 74-80-239-249 assertiond[6479]: assertion failed: 15F34 13E230: assertiond + 15801 [3C808658-78EC-3950-A264-79A64E0E463B]: 0x1
Aug  5 10:32:52 --- last message repeated 1 time ---
Aug  5 10:32:52 74-80-239-249 SpringBoard[6475]: UNNotificationRegistrarConnectionListener connection invalidated
Aug  5 10:32:52 74-80-239-249 SpringBoard[6475]: UNNotificationSchedulerConnectionListener connection invalidated
Aug  5 10:32:52 74-80-239-249 SpringBoard[6475]: No image found for recordID 0:94187a3c73e80fd0:492111172.452469 yet we're being asked for a scale
Aug  5 10:32:52 74-80-239-249 SpringBoard[6475]: Application 'UIKitApplication:io.appery.app.SoftwareStudioGeolocationPlugin[0x7565]' exited voluntarily.
Aug  5 10:32:52 74-80-239-249 assertiond[6479]: assertion failed: 15F34 13E230: assertiond + 15801 [3C808658-78EC-3950-A264-79A64E0E463B]: 0x1
Aug  5 10:32:52 74-80-239-249 assertiond[6479]: notify_suspend_pid() failed with error 7
Aug  5 10:32:52 74-80-239-249 SpringBoard[6475]: Unbalanced calls to begin/end appearance transitions for <SBBannerButtonViewController: 0x7fd8c371b530>.
Aug  5 10:33:06 74-80-239-249 backboardd[6476]: CoreAnimation: updates deferred for too long
Aug  5 10:33:06 74-80-239-249 SpringBoard[6475]: Reply Error: Connection interrupted
Aug  5 10:33:16 74-80-239-249 assertiond[6479]: assertion failed: 15F34 13E230: assertiond + 15801 [3C808658-78EC-3950-A264-79A64E0E463B]: 0x1
Aug  5 10:33:17 74-80-239-249 backboardd[6476]: SecTaskLoadEntitlements failed error=22 cs_flags=200, task->pid_self=-1
Aug  5 10:33:17 74-80-239-249 backboardd[6476]: SecTaskCopyDebugDescription: Software_Studio_[6896]
Aug  5 10:33:17 74-80-239-249 backboardd[6476]: SecTaskLoadEntitlements failed error=22 cs_flags=200, task->pid_self=-1
Aug  5 10:33:17 74-80-239-249 backboardd[6476]: SecTaskCopyDebugDescription: Software_Studio_[6896]
Aug  5 10:33:17 74-80-239-249 backboardd[6476]: SecTaskLoadEntitlements failed error=22 cs_flags=200, task->pid_self=-1
Aug  5 10:33:17 74-80-239-249 backboardd[6476]: SecTaskCopyDebugDescription: Software_Studio_[6896]
Aug  5 10:33:17 74-80-239-249 backboardd[6476]: SecTaskLoadEntitlements failed error=22 cs_flags=200, task->pid_self=-1
Aug  5 10:33:17 74-80-239-249 backboardd[6476]: SecTaskCopyDebugDescription: Software_Studio_[6896]
Aug  5 10:33:17 74-80-239-249 backboardd[6476]: SecTaskLoadEntitlements failed error=22 cs_flags=200, task->pid_self=-1
Aug  5 10:33:17 74-80-239-249 backboardd[6476]: SecTaskCopyDebugDescription: Software_Studio_[6896]
Aug  5 10:33:17 74-80-239-249 Software_Studio_Geolocation_Plugin[6896]: assertion failed: 15F34 13E230: libxpc.dylib + 57882 [66C28065-C9DB-3C8E-926F-5A40210A6D1B]: 0x7d
Aug  5 10:33:17 74-80-239-249 assertiond[6479]: assertion failed: 15F34 13E230: assertiond + 15801 [3C808658-78EC-3950-A264-79A64E0E463B]: 0x1
Aug  5 10:33:17 74-80-239-249 Software_Studio_Geolocation_Plugin[6896]: Apache Cordova native platform version 3.9.1 is starting.
Aug  5 10:33:17 74-80-239-249 Software_Studio_Geolocation_Plugin[6896]: Multi-tasking -> Device: YES, App: YES <<========= Restart tof the app.....
Aug  5 10:33:17 74-80-239-249 Software_Studio_Geolocation_Plugin[6896]: Unlimited access to network resources
Aug  5 10:33:17 74-80-239-249 assertiond[6479]: assertion failed: 15F34 13E230: assertiond + 15801 [3C808658-78EC-3950-A264-79A64E0E463B]: 0x1
Aug  5 10:33:57 --- last message repeated 1 time ---

Sample app POSTs, then GETs ?

We have installed the sample app on a couple of phones - on one phone it POSTs to the posttestserver.com quite happily, on another phone it does a couple of initial POSTs, and then seems to revert to doing GETs (with no location information) instead. Is there a reason why it would use GETs when configured to POST ?
Thanks

Not able to build success on devices using Xcode7.0

Hi Chris,

I am using free version for iOS devices. It was working fine with earlier version of Xcode and iOS. And I am able to build cordova app on iOS devices.

But with latest version of Xocde7.0 and iOS9, I am not able to build on devices due to some backround-geolocation plugin issues. If I removed geolocation plugin then Xcode is able to build on devices. Please refer attached screen shot.

Please guide me and let me know if something I am doing wrong.

Thanks

reference1
reference2

License

Where should the license appear because it has been changed I think from about 3 months ago

It is crashing my app

Android app killed even when put in background

Hello,

I'm currently having a problem with the application in foreground on android being killed 2/3 min after being put in background on a phone that has 4 gb of ram (One plus 3). Do you have any idea why it's killing itself?

Here is the configuration:

// Geolocation config
        desiredAccuracy              : 0,
        distanceFilter               : 5,
        stationaryRadius             : 25,
        locationUpdateInterval       : 5000,
        fastestLocationUpdateInterval: 1000,
        disableElasticity            : true,

        // iOs options
        locationAuthorizationRequest      : Always,
        locationAuthorizationAlert        : If you change location permission the app may not work anymore,
        pausesLocationUpdatesAutomatically: false,

        // Android options
        foregroundService: false,
        notificationText : Shyft location service is running,
        notificationIcon : drawable/icon,

        // Activity Recognition config
        activityType               : 'AutomotiveNavigation',
        activityRecognitionInterval: 2000,
        stopTimeout                : 5,

        // Application config
        debug          : false,
        stopOnTerminate: true,
        startOnBoot    : true

Thank you very much!

Licence Validation Failure Android

I just installed the app from the console, when I want to run it, the message "License Validation Failure" appear and the tracking it seems isn't working. is this an issue of the code or should I do something additional?. It only happen in my android device. Thanks

java.util.ConcurrentModificationException

Hi, I'm consuming a service that returns around 190 locations, I tried to add all of those with this code

                angular.forEach(wrappedobj.data.estaciones, function(value, key) {

            $scope.geofenceRecord = {
                latitude: value.latitud,
                longitude: value.longitud,
                identifier: value.noestacion,
                radius: value.geodistance,
                notifyOnEntry: true,
                notifyOnExit: true
            };
            bgGeo.addGeofence($scope.geofenceRecord );
            createGeofenceMarker($scope.geofenceRecord);
        }); 

After build and run the application, in specific for Android it crash with this error:

screen shot 2016-08-10 at 11 36 35 pm

if I remove the bgGeo.addGeofence method it works fine.

Is there a limit adding Geofences? If so I assume I need to geolocate and retrieve a few locations based on my current geolocation.

Cannot Run Demo On Nexus 6p With Marshmallow

I have compiled and installed the demo application with no issue on Android Version 5. If I take the same and install it on my Nexus 6p running Marshmallow the app installs but crashes right after it runs. The app does have the proper permissions.

no request params?

I have the paid version and built the sampleapp with it. Everything seems to work fine in the app itself -- I configured the url to like http://mysite.com/u.asp and it makes POST requests to that url, but there are no request parameters being sent? I would expect something like lat/lon request parameters to be included in the requests.

I then tried editing configureBackgroundGeolocation to include:
config.params = {"test":"55"};
but looking at the server logs there is no "test" parameter being sent.

This is on a Sprint Galaxy Note 3

Can we stop notification on top notification bar in devices

Hi Chris,

I have implemented same code as you provided in you sample app. It is working fine. You have developed great plugin. But according to my requirement I don't required any notification in devices on top notification bar while location is changing. So Just plugin will update in JS file and JS function would be target to service api.

Please let me know if you need more information.

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.