О платформе набора киоска
Вы используете платформу Ньюсстэнда Кита для разработки клиентской стороны приложения Ньюсстэнда. Через Ньюсстэнда пользователи могут просмотреть газеты и журналы, оптимизированные для просмотра на мобильных устройствах.
Платформа Ньюсстэнда Кита имеет три класса:
NKLibrary
— Представляет библиотеку приложения проблем киоска.NKIssue
— Представляет проблему публикации в библиотеке.NKAssetDownload
— Представляет актив, загружающийся (или это загрузило) от сервера приложения.Актив может быть компонентом онлайновой проблемы, такой как HTML или файл образа. Это может также быть сжатый архив (такой как файл ZIP), что, когда-то несжатый, содержит все компоненты проблемы в готовой к дисплею форме.
Кроме того, платформа добавляет свойство (через категорию) к NSURLConnection
класс. Это свойство связывает соединение URL с загрузкой (или загруженный) актив.
Приложение содержания киоска способно к выполнению в фоновом режиме для запуска загрузок или делегата процесса события, связанные с активами проблемы. Для запроса этой возможности указать newsstand-content
как строковое значение одного из элементов матрицы UIBackgroundModes
свойство в приложении Info.plist
файл. Это свойство также позволяет приложениям быть запущенными в фоновом режиме через уведомления нажатия.
Когда уведомления нажатия инициировали загрузку, следующие шаги описывают общий поток операций для получения содержания киоска. Если уведомления нажатия не включаются, пропустите первый шаг:
Когда существует новая проблема для загрузки, серверная сторона приложения отправляет уведомление нажатия клиентским приложениям.
Если приложение не работает на переднем плане, когда уведомление поставлено, это активировано в фоновом режиме (или начато фон, если необходимый) загружать активы проблемы. Иначе, Вы обрабатываете уведомление, поскольку Вы были бы любое уведомление нажатия. См. Локальное и Удаленное Руководство по программированию Уведомления для получения информации о том, как отправить и обработать уведомления нажатия.
Клиентское приложение связывается с его сервером и заставляет URLs, определяющий местоположение активов проблемы загружать. Это, возможно, также должно было бы получить имя и дату проблемы от сервера. В этой фазе это могло бы также проверить это, пользователь имеет право на подписку, или выполните любую другую требуемую авторизацию.
Клиент получает совместно используемое
NKLibrary
экземпляр и отправляет aaddIssueWithName:date:
обменивайтесь сообщениями к нему, передающий на имя проблемы и дату. Этот шаг создаетNKIssue
объект, представляющий проблему и, добавляет его к библиотеке.С каждым URL, определяющим местоположение загружаемого актива на сервере приложения, клиент создает
NSURLRequest
объект.Для каждого загружаемого актива это тогда отправляет a
addAssetWithRequest:
обменивайтесь сообщениями кNKIssue
объект, передающий вNSURLRequest
объект. Этот вызов возвращает aNKAssetDownload
объект.Это тогда вызывает
downloadWithDelegate:
наNKAssetDownload
объект, передающий в объекте делегата, принимающемNSURLConnectionDownloadDelegate
протокол.Делегат контролирует загрузку актива и обновляет индикатор хода выполнения. Когда загрузка закончена, она обрабатывает загруженный актив.
Обработка могла бы включить распаковку архива или других действий прежде, чем переместить актив в присвоенное расположение проблемы в тестовой среде приложения.
В то время как активы загружаются, приложение могло быть приостановлено или даже завершено полностью, если, например, существует недостаточно память или пользовательские выходы силы приложение. Приложение (принимающий его имеет newsstand-content
свойство), позже повторно запускается в фон для обработки завершения загрузки или любых запросов аутентификации или ошибок, связанных с ним. Процедура в этом случае является следующим:
Когда приложение запускается, оно может использовать
UIApplicationLaunchOptionsNewsstandDownloadsKey
ключ для доступа к массиву в launchOptions словаре передал вapplication:didFinishLaunchingWithOptions:
. Если существует массив, он содержит идентификаторы, вызвавшие запуск; они могли быть идентификаторами для загрузок, которые закончили загружать это или не могли завершить загрузку.Это выполняет итерации через массив
NKAssetDownload
объекты отdownloadingAssets
свойствоNKLibrary
объект и вызовыdownloadWithDelegate:
на каждом из них. Если это хочет, приложение может использовать идентификаторы актива, полученные на предыдущем шаге для проверки, какие загрузки актива вызвали перезапуск.NSURLConnectionDownloadDelegate
возразите обрабатывает загрузки актива, как это обычно делает.
Платформа Ньюсстэнда Кита ожидает, что все вызовы ее методов будут сделаны на основном потоке; NSURLConnectionDelegate Protocol
методы также вызываются на основной поток.
Классы
|
|
Экземпляр |
|
Экземпляр |
|
Экземпляр |