В некоторых случаях вы можете установить плагин на платформу, которая еще не поддерживается. Это означает, что у вас будет доступ к интерфейсу, но реализация не существует. Вы можете сделать простую проверку перед вызовом любого API, чтобы проверить, поддерживается ли он на платформе, где выполняется код.
public bool IsLocationAvailable()
{
if(!CrossGeolocator.IsSupported)
return false;
return CrossGeolocator.Current.IsGeolocationAvailable;
}
В iOS ваше приложение должно иметь ключи в вашем Info.plist для NSLocationWhenInUseUsageDescription для доступа к местоположению устройства.
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access to location when open.</string>
Фоновые обновления
Только реализуйте это и добавьте эти свойства, если вам нужны фоновые обновления для вашего приложения. Скорее всего, вы не будете. Добавление этого также напрямую влияет на разрешения и запросы для пользователя. Пожалуйста, будьте очень осторожны при добавлении этой информации.
Внутри вашего info.plist вы должны включить фоновые режимы / UIBackgroundModes для обновления местоположения. Вот полное руководство. Ваш info.plist должен содержать что-то вроде этого:
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
В дополнение к NSLocationWhenInUseUsageDescription
необходимо добавить NSLocationAlwaysAndWhenInUseUsageDescription
ключи в файл Info.plist вашего приложения. (Если ваше приложение поддерживает iOS 10 и более ранние версии, ключ NSLocationAlwaysUsageDescription также требуется.) Если эти ключи отсутствуют, запросы на авторизацию немедленно завершаются неудачей.
<key>NSLocationAlwaysUsageDescription</key>
<string>This app needs access to location when in the background.</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>This app needs access to location when open and in the background.</string>
Более подробно вы можете посмотреть Github demo