Описание передачи геолокации на мобильных устройствах

В этой статье описывается передача геолокации с мобильных устройств посетителей посредством Webim Mobile SDK для платформ Android и iOS.

Передача геолокации в мобильных приложениях осуществляется посредством функции sendGeolocation(Geolocation geolocation, GeolocationCallback callback) Webim Mobile SDK. Частности реализации и вызова отличаются в зависимости от платформы, но общий алгоритм работы следующий:

  1. В клиентском приложении при включенной в account config опции отправки геолокации отображается кнопка "Отправить местоположение".
  2. По нажатию на кнопку открывается виджет используемой картографической службы (Yandex.Карты, Google Maps, 2GIS, etc., настраивается через account config)
  3. Посетитель отправляет своё местоположение по нажатию на кнопку "Отправить"
  4. На Chat Backend посредством sendGeolocation(Geolocation geolocation, GeolocationCallback callback) отсылается action=geo_response
  5. В Chat Backend происходит валидация и сохранение геолокации в объекте Visitor с последующей отправкой дельт оператору и посетителю
  6. С Chat Backend приходит ответ:
    • {'result': 'ok') в случае успеха;
    • {'error': 'invalid-coordinates-recieved'} в случае, если были переданы невалидные координаты

Параметр geolocation, передаваемый функции - объект класса Geolocation, в котором хранятся следующие параметры:

  • 'latitude' - широта, тип float, либо String
  • 'longtitude' - долгота, тип float, либо String