MobileLocation
From Xojo Documentation
Class (inherits from MobileControl)
This class is supported on Mobile. Use #If...#Endif with the Target... constants to ensure you only use this class where it is supported. |
New in 2020r2
The current location of the device.
Enumerations | |||
|
Events | ||||
|
Methods | ||||
|
Properties | |||
|
Notes
On iOS to test this in the Simulator, use the Debug ↠ Location menu to provide fake locations.
Initial Setup
In the Opening event handler of the screen, you will need to initialize the location like this:
If MyLocation.AuthorizationState = MobileLocation.AuthorizationStates.AuthorizedAppInUse Then
' we've got our requested authorization state, start getting LocationChanged events
MyLocation.Start
Else
' we don't have authorization yet, so ask for it
MyLocation.RequestUsageAuthorization(MobileLocation.UsageTypes.AppInUse)
End If
' we've got our requested authorization state, start getting LocationChanged events
MyLocation.Start
Else
' we don't have authorization yet, so ask for it
MyLocation.RequestUsageAuthorization(MobileLocation.UsageTypes.AppInUse)
End If
Sample plist
In addition to requesting authorization, you'll also need to provide a plist file specifying the message to display when authorization is requested. An example plist is below. Save it to a file called iOSLocation.plist and drag it into your iOS project to automatically include it with the app:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>NSLocationWhenInUseUsageDescription</key> <string>This app needs access to your location while running.</string> </dict> </plist>