** Обновление 2017 **
За последние годы в iOS было внесено множество изменений в механизмы безопасности и взаимодействие между приложениями.
Приведенный ниже код больше не работает в текущих выпусках iOS, поскольку Safari больше не принимает javascript:...
в URL-адресах и инфраструктурах, таких как NSURL
, перехватывает их и возвращает nil
.
Единственная альтернатива, которая все еще работает, это либо разместить веб-сайт и открыть Safari, либо интегрировать такую HTML-страницу в свое приложение и запустить небольшой http-сервер для размещения его по требованию.
** iOS до 6.x **
Поскольку Apple принудительно установила песочницу во всех приложениях магазина приложений
в настоящее время нет простого способа реализовать ваш запрос.
Однако вы можете открыть специальный http: // - URL из вашего приложения, содержащего javascript, для размещения файла cookie:
NSString jsURL = @"javascript:function someFunction(){ /* your javascript code here */ } someFunction();void(0)";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: jsURL]];
Использование javascript в URL-адресах использовалось различными приложениями iPhone для перекрестного общения
с MobileSafari (например, instapaper ).
Другим вариантом может быть включение статической HTML-страницы в ваше приложение или на сервер и указание MobileSafari открыть ее.
Страница в свою очередь может установить постоянный файл cookie.
Надеюсь, это поможет!