Я хотів би надіслати конфігураційний профіль із моєю програмою iPhone та встановити його, якщо це потрібно.
Майте на увазі, ми говоримо про профіль конфігурації, а не про профіль підготовки.
По-перше, таке завдання можливо. Якщо ви розмістите конфігураційний профіль на веб-сторінці та натиснете його в Safari, він буде встановлений. Якщо ви надішлете профіль електронною поштою та клацнете вкладення, він також встановиться. "Встановлено" в цьому випадку означає "Викликається інтерфейс встановлення", але я навіть не зміг зайти так далеко.
Отже, я працював згідно з теорією, згідно з якою ініціювання встановлення профілю передбачає перехід до нього як URL-адреси. Я додав профіль до свого набору додатків.
A) По-перше, я спробував [sharedApp openURL] з URL-адресою file: // у свій пакет. Немає такої удачі - нічого не відбувається.
Б) Потім я додав HTML-сторінку до свого набору, що має посилання на профіль, і завантажив її в UIWebView. Натискання на посилання нічого не робить. Однак завантаження однакової сторінки з веб-сервера в Safari працює нормально - посилання можна натиснути, профіль встановлюється. Я надав UIWebViewDelegate, відповідаючи ТАК на кожен навігаційний запит - немає різниці.
В) Потім я спробував завантажити ту саму веб-сторінку зі свого набору в Safari (використовуючи [sharedApp openURL] - нічого не відбувається. Я думаю, Safari не може бачити файли в моєму пакеті додатків.
Г) Завантаження сторінки та профілю на веб-сервер здійсненно, але це завдає біль на організаційному рівні, не кажучи вже про додаткове джерело збоїв (що, якщо немає покриття 3G? Тощо).
Тож моє велике запитання: ** як мені встановити профіль програмно?
І маленькі запитання: що може зробити посилання некліковим в UIWebView? Чи можна завантажити URL-адресу file: // з мого набору в Safari? Якщо ні, чи є на iPhone місцезнаходження, де я можу розміщувати файли, і Safari може їх знаходити?
EDIT на B): проблема якось полягає в тому, що ми робимо посилання на профіль. Я перейменував його з .mobileconfig на .xml (тому що це справді XML), змінив посилання. І посилання працювало в моєму UIWebView. Перейменовано назад - те саме. Схоже, UIWebView неохоче робить загальнодоступні речі - оскільки встановлення профілю закриває програму. Я спробував сказати, що це нормально - за допомогою UIWebViewDelegate - але це не переконало. Така ж поведінка для mailto: URL-адреси в UIWebView.
Для mailto: URL-адрес загальним методом є переведення їх у виклики [openURL], але це не зовсім працює для мого випадку, див. Сценарій А.
Для itms: URL-адрес, однак, UIWebView працює належним чином ...
EDIT2: спробував подати URL-адресу даних до Safari за допомогою [openURL] - не працює, див. Тут: iPhone Open DATA: URL- адреса в Safari
EDIT3: знайшов багато інформації про те, як Safari не підтримує файли: // URL-адреси. Однак UIWebView дуже багато чого робить. Крім того, Safari на тренажері відкриває їх просто чудово. Останній біт є найбільш неприємним.
EDIT4: Я так і не знайшов рішення. Натомість я склав двобітний веб-інтерфейс, де користувачі можуть замовити профіль, надісланий їм електронною поштою.