Skip to content
This repository has been archived by the owner on May 1, 2020. It is now read-only.

Can't find BackgroundBeaconMonitoring #5

Open
eprin opened this issue Jul 26, 2016 · 1 comment
Open

Can't find BackgroundBeaconMonitoring #5

eprin opened this issue Jul 26, 2016 · 1 comment
Assignees
Labels

Comments

@eprin
Copy link

eprin commented Jul 26, 2016

@stephenrob

I have added your plugin, i can see it in my package.json but when I try to find it in my typescript code like : "console.log(cordova.plugins);" i don't see BackgroundBeaconMonitoring class and its method. How do you call BackgroundBeaconMonitoring in your app ??

@stephenrob stephenrob self-assigned this Jul 26, 2016
@stephenrob
Copy link
Member

I've currently not looked into typescript and angular2. The application we are developing with Ionic is still Ionic v1 and Angular 1.5.3 (I'm just cleaning up some of the code before open sourcing this).

Below is an extract from one of our AngularJS services that uses the BackgroundBeaconMonitoring Plugin.

Once you have added the plugin the javascript files should be available to use, they are auto included like all other plugin files, make sure you have android added to your project as this plugin currently only works for android. At this stage you can just call the plugin methods documented in the README.

In most cases you will need to customise the code in this plugin, generally the BeaconLoggingMonitorNotifier and BeaconLoggingRangeNotifier to suit your individual application needs, not just adding the plugin.

angular.module('myJourneys.services').service('BeaconMonitoringService', function($rootScope,
                                                                                  $ionicPlatform,
                                                                                  $cordovaBeacon,
                                                                                  $cordovaLocalNotification,
                                                                                  $cordovaDevice,
                                                                                  BEACON_UUID,
                                                                                  BEACON_GLOBAL_MAJOR,
                                                                                  BEACON_GLOBAL_MINOR,
                                                                                  BEACON_REGIONS,
                                                                                  API_SERVER_URL,
                                                                                  API_VERSION,
                                                                                  PreferencesService,
                                                                                  RegionEventsService,
                                                                                  BeaconEventsService,
                                                                                  AuthService,
                                                                                  $timeout) {

  var BeaconMonitoring = function() {};

  ...

  var requestPermissions = function() {
    $cordovaBeacon.requestAlwaysAuthorization();
    $cordovaLocalNotification.promptForPermission();
    BackgroundBeaconMonitoring.requestPermissions();
  };

  var initAndroidService = function() {

    $ionicPlatform.ready(function() {

      var device_id = $cordovaDevice.getUUID();

      BackgroundBeaconMonitoring.startService(AuthService.token(), AuthService.email(), device_id, API_SERVER_URL, API_VERSION, PreferencesService.readSendMovement(), function() {

        BEACON_REGIONS.forEach(function(region) {

          var identifier = region.identifier;
          var uuid, major, minor = "";

          if (region.uuid === undefined) {
            uuid = BEACON_UUID;
          } else {
            uuid = region.uuid;
          }
          if (region.major === undefined) {
            major = BEACON_GLOBAL_MAJOR;
          } else {
            major = region.major;
          }
          if (region.minor === undefined) {
            minor = BEACON_GLOBAL_MINOR;
          } else {
            minor = region.minor;
          }

          BackgroundBeaconMonitoring.startMonitoringRegion(identifier, uuid, major, minor, function() {}, function() {});
          BackgroundBeaconMonitoring.startRangingRegion(identifier, uuid, major, minor, function() {}, function() {});

        });

      }, function() {});

    });

  };

  BeaconMonitoring.prototype.init = function() {

    $ionicPlatform.ready(function() {

      requestPermissions();

      ...

      initAndroidService();

    });

  };

  return BeaconMonitoring;

});

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants