iPhone - отключение запроса UIWebView для включения служб определения местоположения - PullRequest
1 голос
/ 24 ноября 2010

Во время разработки приложения для iPhone я решил интегрировать Карты Google, включив UIWebView с URL-адресом, который я создаю, указывая на maps.google.com.Проблема в том, что веб-сайт пытается получить местоположение пользователя, показывая «Это приложение хочет использовать ваше местоположение».Это создает для меня ряд проблем, которые я могу объяснить при необходимости.

Есть ли способ отключить UIWebView / Mobile Safari от запроса местоположения пользователя.Единственный обходной путь, который я могу придумать, - это использовать Google Javascript v3 API для создания собственной карты, но мне нужно будет получить лицензию, и я не уверен на 100%, что смогу отключить запрос местоположения (хотя яможет).

У кого-нибудь есть альтернативное решение или способ решения этой проблемы?Спасибо!

Ответы [ 4 ]

4 голосов
/ 24 ноября 2010

Я думаю, что нашел подходящий обходной путь на данный момент. Я вспомнил, что вы можете вставлять карты из Google на свой сайт, используя iframe. Я проверил URL, который они создают для этого, и заметил, что они добавили дополнительный параметр "output = embed". Я добавил переменную «output» в URL и вставил ее в Mobile Safari на симуляторе, и он больше не спрашивает меня о моем местоположении.

Единственный недостаток этого заключается в том, что на данный момент я вижу, что на странице есть несколько дополнительных компонентов пользовательского интерфейса, поскольку она включает в себя как мобильные элементы управления, так и элементы управления для встраивания веб-сайтов на страницу. Кроме того, я еще не проверял это на реальном устройстве.

Редактировать: тестирование на устройстве показало, что встроенные элементы управления не работают, но мобильные элементы управления работают так же, как и все остальные аспекты карты.

1 голос
/ 24 ноября 2010

Используйте MKMapView вместо.

0 голосов
/ 24 ноября 2010

Предполагая, что это сделано с помощью JavaScript, вы можете попробовать вставить некоторый javascript в - (void)webViewDidStartLoad:(UIWebView *)webView, используя -[UIWebView stringByEvaluatingJavaScriptFromString:] (например, вы можете установить функцию запроса местоположения на null).Я не совсем уверен, насколько хорошо это работает, пока страница все еще загружается, хотя ...

0 голосов
/ 24 ноября 2010

(я предполагаю, что есть причина, по которой вы не используете MKMapView для этой задачи, и вы застряли с UIWebView)

Возможно, вы попытаетесь запросить местоположение пользователя раньше в вашем приложении через CLLocationManager, т.е.сразу после запуска.Уведомление о разрешении не будет отображаться более одного раза.(независимо от того, хочет ли пользователь разрешить или нет, что вас, похоже, не волнует)

Не совсем уверен, что это сработает в вашем случае, однако UIWebView может по-прежнему запрашивать разрешение на передачу данных о местоположении веб-сайтам.это показывает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...