This document provides information on using beacons in Titanium mobile applications. It discusses beacon concepts like UUID, major, and minor values. It also covers implementing beacon monitoring and ranging on iOS and Android, including required permissions and configuration. Background processing is enabled through settings in the TiModule.xml file to allow ranging when the app is in the background.
10. IOS
Ti.Geolocation.requestAuthorization(Ti.Geolocation.AUTHORIZATION_ALWAYS);
var Beacons = require('org.beuckman.tibeacons');
Beacons.addEventListener('determinedRegionState', function (e) {
if (e.regionState === 'inside') {
Beacons.startRangingForBeacons({
uuid: e.uuid
});
}
});
Beacons.addEventListener('beaconProximity', function (beacon) {
if (_.isUndefined(beacon.rssi)) return;
// do your thing
});
Beacons.startMonitoringForRegion({uuid: '<uuid>'});
11. ANDROID
var Beacons = require('com.drtech.altbeacon');
Beacons.addEventListener('serviceBound', function () {
Beacons.startMonitoringForRegion({uuid: '<uuid>'});
});
Beacons.addEventListener('beaconProximity', function (beacon) {
if (_.isUndefined(beacon.rssi)) return;
// do your thing
});
Beacons.setAutoRange(true);
Beacons.setRunInService(true);
Beacons.addBeaconLayout('m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24');
Beacons.bindBeaconService();