Ассоциация приложений для расширения файлов iPhone
На моем iPhone запущено приложение под названием Caissa Chess. После регистрации приложения у производителя (это необязательно) я получил письмо, содержащее шахматную головоломку. Важнейшая часть почтового сообщения с шахматной диаграммой выглядит так:
<a href="chess://puzzle/8/p1R3p1/4p1kn/3p3N/3Pr2P/6P1/PP3K2/8 w ?term=w2&solution=c7xg7&description=Amura%20vs%20Carlos%20Bulcourf%2C%20Villa%20Ballester%2C%201996"><img src="cid:image1"></a>
При нажатии на диаграмму, отображаемую по этому URL-адресу, завершается работа Mail.app и открывается файл Caissa Chess, который затем отображает диаграмму и позволяет решить головоломку.
Как это работает? Я хочу сделать небольшое приложение для iPhone, для которого потребуется внешний файл, отправленный по электронной почте. Мне нужно сначала понять, что происходит.
chess://
как и где определяется, какое приложение будет открыто?- что означает остальная часть URL? Будет ли он ссылаться на локальный файл или он будет решен приложением как действующий http: url? Тело сообщения электронной почты содержит вложение изображения.
Я уверен, что этот механизм где-то задокументирован, но книги, которые у меня есть, не описывают его, и Google тоже мне не помог.
заранее спасибо
Sjakelien
2 ответа
Вы должны зарегистрировать протокол в вашем приложении. Я уже видел несколько уроков, в том числе и этот.
http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
Это называется обработчиком протокола URL. Эта запись блога подробно описывает, как это реализовать. В основном вам необходимо:
Зарегистрируйте протокол, который вы хотите (например,
chess://
). Вы можете сделать это прямо вInfo.plist
файл - проверить запись в блоге для получения дополнительной информации.Обработайте запрос. Для этого примите
application: handleOpenURL:
сообщение в вашем приложении делегат.