Перейти к содержанию
Fire Monkey от А до Я
  • 0

Вопрос по запросу permissions в IOS


Bob32

Вопрос

Добрый день!

есть вот такой, хорошо работающий под андроидом код запроса пользовательских разрешений:

{$IFDEF ANDROID}
  FPermissionCamera := JStringToString(TJManifest_permission.JavaClass.CAMERA);
  FPermissionGPS := JStringToString(TJManifest_permission.JavaClass.ACCESS_FINE_LOCATION);
{$ENDIF}
  PermissionsService.RequestPermissions([FPermissionCamera,FPermissionGPS], AccessCameraPermissionRequestResult, DisplayRationale);
 

как мы видим - под андроидом FPermissionCamera и FPermissionCamera заполняются соответствующими строковыми идентификаторами разрешений.

Вопрос - а как под IOS-ом?

Откуда система знает какие пермишинсы мы запрашиваем? эти переменные - просто пустые будут до вызова PermissionsService.RequestPermissions

Спрашиваю потому, что есть приложение с такими разрешениями, которое под Андроидом работает хорошо.

Под ios-ом налетел на такую проблему - при первом запуске пользователю задается вопрос про оба этих пермишинса (откуда он понимает, что это они - не понимаю - строки то пустые!) если пользователь разрешит их - все ок - приложение работает. если не разрешит - в этот запуск камера и локейшн сенсор не работают (что нормально), а вот при следющем запуске приложения - оно просто вылетает на старте - и никаких разрешений снова никто ни у кого не спрашивает )

какие мысли? )

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
В 08.08.2020 в 20:06, Bob32 сказал:

Добрый день!

есть вот такой, хорошо работающий под андроидом код запроса пользовательских разрешений:

{$IFDEF ANDROID}
  FPermissionCamera := JStringToString(TJManifest_permission.JavaClass.CAMERA);
  FPermissionGPS := JStringToString(TJManifest_permission.JavaClass.ACCESS_FINE_LOCATION);
{$ENDIF}
  PermissionsService.RequestPermissions([FPermissionCamera,FPermissionGPS], AccessCameraPermissionRequestResult, DisplayRationale);
 

как мы видим - под андроидом FPermissionCamera и FPermissionCamera заполняются соответствующими строковыми идентификаторами разрешений.

Вопрос - а как под IOS-ом?

Откуда система знает какие пермишинсы мы запрашиваем? эти переменные - просто пустые будут до вызова PermissionsService.RequestPermissions

Спрашиваю потому, что есть приложение с такими разрешениями, которое под Андроидом работает хорошо.

Под ios-ом налетел на такую проблему - при первом запуске пользователю задается вопрос про оба этих пермишинса (откуда он понимает, что это они - не понимаю - строки то пустые!) если пользователь разрешит их - все ок - приложение работает. если не разрешит - в этот запуск камера и локейшн сенсор не работают (что нормально), а вот при следющем запуске приложения - оно просто вылетает на старте - и никаких разрешений снова никто ни у кого не спрашивает )

какие мысли? )

Вы решили проблему?

Ссылка на комментарий
  • 0
      if not TCLLocationManager.OCClass.locationServicesEnabled then
        abort;

      AuthorizationStatus:=TCLLocationManager.OCClass.authorizationStatus;
      if AuthorizationStatus in [kCLAuthorizationStatusDenied,  kCLAuthorizationStatusRestricted] then
        abort;

      if AuthorizationStatus in [kCLAuthorizationStatusAuthorizedWhenInUse, kCLAuthorizationStatusAuthorized] then
        abort;

      FLocater := TCLLocationManager.Create;
      try
        FLocater.retain;
        FLocater.requestWhenInUseAuthorization;
      finally
        FLocater.release;
        FLocater:=nil;
      end;

 

Ссылка на комментарий
  • 0
В 23.10.2020 в 05:34, Slym сказал:

FLocater := TCLLocationManager.Create; try FLocater.retain; FLocater.requestWhenInUseAuthorization; finally FLocater.release; FLocater:=nil; end;

Добрый день!

только сейчас заметил (

идея понятна, СПАСИБО!

но есть проблема -  у  FLocater нет методов retain и .requestWhenInUseAuthorization;

А без этого не запрашивается разрешение у пользователя. (

Ссылка на комментарий
  • 0

Чтобы не плодить тем, спрошу тут.

С выходом 14 iOs при обращении к ресурсам в локальной сети iOs выдает запрос на разрешение на поиск устройств в локальной сети и подключение к ним. Не подскажете, как можно запросить это разрешение заранее?

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...