Important
- Starting from iOS 14.0, Apple has provided user control to choose the level of precision of location to be shared in App. Now because of this region monitoring(Geofence feature) will not work in cases where the precise location is disabled by the user. Refer link for more info.
- Region monitoring is only supported with Always authorization. When-in-use authorization doesn’t support this feature. Refer link for more info.
- Dwell trigger is not supported in iOS, hence the SDK supports only Enter and Exit triggers.
How to enable Location Triggered?
Required Permissions:
Region Monitoring(Geofences) requires Always Authorization and Precise location accuracy to be enabled to work. Therefore make sure that the app is configured to get these permissions and also it’s a good practice to let the user know the context in which these permissions are needed, this will also encourage the user to provide these permissions.SDK Installation
Install using CocoaPod
Integrate the MoEngageGeofence framework by adding the dependency in the podfile as show below.pod install to install the framework
Install using Swift Package Manager
MoEngageGeofence is supported through SPM from SDK version 4.2.0. To integrate use the following git hub url link and set the branch as master or version as 4.2.0 and above https://github.com/moengage/MoEngage-iOS-Geofence.gitManual Integration
To integrate theMoEngageGeofence SDK manually to your project follow this doc.
Start Geofence Monitoring:
After integrating the MOGeofence module callstartGeofenceMonitoring() method to initiate the geofence module. This will fetch the geofences around the current location of the user.
didEnterRegion and didExitRegion. You can get these by confirming to the as MOGeofence.sharedInstance.setGeofenceDelegate(self)
Testing Geofencing
First, create a geofencing campaign on your MoEngage dashboard. You can test geofencing in the following ways:-
On the simulator:
- You can simulate location as shown below.\
- Simulate the location for which you have created the campaign on the dashboard.
If you get the respective call back (the delegate methods in MOGeofenceHandler), you are good to go. On simulator, you will not receive push notifications.
- You can simulate location as shown below.\
-
On the device:
- You can simulate location for real device from the bar above the console as shown below:\
- You can add a gpx file with the locations configured. A sample gpx file looks like this:
- You can simulate location for real device from the bar above the console as shown below:\