I am developing an ibeacon app on swift and i would like to log the minutes that every client/user spends within a beacon range. I would really appreciate any suggestions.
How to log the time when the user is in range ibeacon
262 Views Asked by Savas Kon At
1
There are 1 best solutions below
Related Questions in TIMESTAMP
- error C2016 (C requires that a struct or union has at least one member) and structs typedefs
- Allocating memory for pointers inside structures in functions
- Understanding difference in Swift properties for structs and classes in assignment
- All struct identifiers are automatically forward declared
- Efficiency penalty of initializing a struct/class within a loop
- C++ Struct prototyping in separate header file
- struct array initialize with a variable
- How do I do a literal *int64 in Go?
- Serializing a struct whose definition is not known
- Passive Objects in C++
Related Questions in IBEACON
- error C2016 (C requires that a struct or union has at least one member) and structs typedefs
- Allocating memory for pointers inside structures in functions
- Understanding difference in Swift properties for structs and classes in assignment
- All struct identifiers are automatically forward declared
- Efficiency penalty of initializing a struct/class within a loop
- C++ Struct prototyping in separate header file
- struct array initialize with a variable
- How do I do a literal *int64 in Go?
- Serializing a struct whose definition is not known
- Passive Objects in C++
Related Questions in CLBEACONREGION
- error C2016 (C requires that a struct or union has at least one member) and structs typedefs
- Allocating memory for pointers inside structures in functions
- Understanding difference in Swift properties for structs and classes in assignment
- All struct identifiers are automatically forward declared
- Efficiency penalty of initializing a struct/class within a loop
- C++ Struct prototyping in separate header file
- struct array initialize with a variable
- How do I do a literal *int64 in Go?
- Serializing a struct whose definition is not known
- Passive Objects in C++
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Typically you want to log this information to a server, so you can see all the times from different users in once place. That means making a web service call each time a beacon appears or disappears. Then you can calculate on the server how long it was between the time the beacon appeared and the beacon disappeared.
A typical implementation would send the following fields to the server:
When do you make your web service calls? There are two answers. A simple one and a complex one:
Complex Answer
What complicates this answer is the fact that iOS apps typically track beacons using a wildcard
CLBeaconRegion
that leaves some of the identifiers nil. When monitoring for beacons with such a region, you don't actually know which beacons appear and disappear -- you just know when one of a group of beacons appears, and when all beacons in that same group disappear.In order to track the individual beacons with all their identifiers, you have to use ranging APIs, which give you an update each second that a beacon is visible. But ranging only works in the foreground (and in the background for 5 seconds after the first beacon in the region appears or all disappear), so when your app goes to the background, it loses access ti fine-grained information about exactly which beacons are visible.
It is possible to build logic that combines the two techniques (ranging and monitoring) so you use ranging to track start times and monitoring to track stop times -- but in cases where you have many beacons, it only gives you a rough idea of the time each individual beacon disappeared.
Simple Answer
If you have fewer than 20 beacons to track, then this gets much simpler, because you can define a single
CLBeaconRegion
for each beacon, and monitor them all separately. (iOS only lets you define 20CLBeaconRegion
s per app.) Then you can simply send appear/disappear events to your server for each one. With this technique, you put your web service calls in thedidEnterRegion
anddidExitRegion
callbacks.