Как определить, работает ли веб-страница в встроенном браузере iPhone? - PullRequest
2 голосов
/ 22 февраля 2012

У меня есть веб-страница, которая использует собственные обработчики протоколов для открытия приложений. Одна ссылка на приложение iTunes store для людей, чтобы загрузить приложение Picup, а другая ссылка на fileupload: //, чтобы открыть приложение Picup.

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

Я намерен использовать JavaScript, чтобы определить, загружена ли веб-страница во встроенном браузере, и показать сообщение с просьбой использовать Safari.

Одним из способов является обнаружение строки пользовательского агента

Embedded

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A405

Safari

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3

Однако обнаружение наличия / отсутствия слова Safari в строке пользовательского агента применимо для всех версий iPhone? Есть ли более надежный метод?

Ответы [ 2 ]

1 голос
/ 19 октября 2012

Видимо, да, это лучший способ.

Даже Chrome для iOs включает в себя слово Safari в запросах, поэтому вы должны согласиться с тем, что запросы от iOs без слова «Safari» поступают от встроенного элемента управления UiWebKit.

0 голосов
/ 22 февраля 2012

Вы можете установить пользовательский User-Agent для ваших запросов ... вот пример:

NSString *urlString= @"http://www.google.com";
NSURL *url = [NSURL urlString];
NSMutableURLRequest *requestObj = [NSMutableURLRequest requestWithURL:url];
[requestObj setValue:@"myCustomAgent_Mathboy:)/1.0" forHTTPHeaderField:@"User_Agent"];
[webView loadRequest:requestObj];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...