Я бы хотел отправить профиль конфигурации вместе с моим приложением для iPhone и установить его при необходимости.
Имейте в виду, мы говорим о профиле конфигурации, а не о профиле обеспечения.
Во-первых, такая задача возможна. Если вы разместите профиль конфигурации на веб-странице и щелкните по нему в Safari, он будет установлен. Если вы отправите профиль по электронной почте и нажмете вложение, оно также будет установлено. «Установлено» в данном случае означает «Пользовательский интерфейс установки вызывается», но я даже не смог зайти так далеко.
Таким образом, я работал в соответствии с теорией, согласно которой установка профиля требует перехода к нему в виде URL-адреса. Я добавил профиль в свой пакет приложений.
A) Сначала я попробовал [sharedApp openURL] с URL-адресом file: // в моем комплекте. Нет такой удачи - ничего не происходит.
B) Затем я добавил HTML-страницу в свой пакет, которая имеет ссылку на профиль, и загрузил ее в UIWebView. Нажатие на ссылку ничего не делает. Загрузка идентичной страницы с веб-сервера в Safari, однако, работает нормально - ссылка кликабельна, профиль устанавливается. Я предоставил UIWebViewDelegate, отвечая ДА на каждый запрос навигации - без разницы.
C) Затем я попытался загрузить ту же самую веб-страницу из своего пакета в Safari (используя [sharedApp openURL] - ничего не происходит. Я думаю, Safari не может видеть файлы внутри пакета моего приложения.
D) Загрузка страницы и профиля на веб-сервер выполнима, но на организационном уровне это проблема, не говоря уже о дополнительном источнике сбоев (что если нет покрытия 3G? И т. Д.) .
Итак, мой главный вопрос: ** как мне установить профиль программно?
И небольшие вопросы: что может сделать ссылку недоступной для клика в UIWebView? Можно ли загрузить файл: // URL из пакета my в Safari? Если нет, есть ли локальное местоположение на iPhone, где я могу разместить файлы, и Safari может их найти?
РЕДАКТИРОВАТЬ на B): проблема заключается в том, что мы ссылаемся на профиль. Я переименовал его из .mobileconfig в .xml (потому что это действительно XML), изменил ссылку. И ссылка работала в моем UIWebView. Переименовал обратно - тоже самое. Похоже, что UIWebView неохотно делает вещи для всего приложения - так как установка профиля закрывает приложение. Я пытался сказать, что все в порядке - с помощью UIWebViewDelegate - но это не убедило. Такое же поведение для mailto: URL в UIWebView.
Для адресов mailto: общепринятым методом является преобразование их в вызовы [openURL], но это не совсем подходит для моего случая, см. Сценарий A.
Для itms: URL-адреса, однако, UIWebView работает как положено ...
EDIT2: попытался передать URL-адрес данных в Safari через [openURL] - не работает, см. Здесь: iPhone Открыть DATA: URL в Safari
EDIT3: нашел много информации о том, как Safari не поддерживает file: // URL. UIWebView, однако, очень много делает. Также в Safari на симуляторе их открывают просто отлично. Последний бит самый расстраивающий.
EDIT4: Я не нашел решения. Вместо этого я собрал двухбитный веб-интерфейс, где пользователи могут заказать профиль, отправленный им по электронной почте.