В этом руководстве показано, как получить доступ к ключевому устройству iOS и информации о пользователе, такой как модель устройства, номер версии iOS, выбранный язык пользователя и т. Д. Эта информация может быть полезна при диагностике проблем приложения или при настройке пользовательских интерфейсов в вашем приложении
Важность данных устройства
Итак, почему вы хотите получить доступ к данным устройства?
Пользователи приложений часто пишут разработчикам по электронной почте с отзывами или для получения помощи в случае возникновения проблем Может быть полезно получить больше информации об устройстве пользователя и среде, не спрашивая их. Например, если вашему приложению требуется подключение к Интернету, а пользователь с iPod touch отправляет электронное письмо с сообщением о том, что приложение не работает должным образом во время похода, вы можете быстро сделать вывод, что это, вероятно, связано с тем, что у пользователя не было доступа к Интернету. Кроме того, знание версии iOS, версии приложения, а также страны и языка пользователя дает вам еще больше информации о пользователе, его устройстве и о том, что может способствовать возникновению проблемы, с которой столкнулся пользователь.
В дополнение к описанному выше сценарию отслеживания ошибок и ошибок, доступ к информации из UIDevice или NSLocale может также оказаться полезным для настройки интерфейса или поведения вашего приложения.
Понимание класса UIDevice
Вы можете узнать класс UIDevice
встречам с ориентацией устройства, но UIDevice
предлагает множество свойств, методов и уведомлений, которые обеспечивают понимание устройства. От отслеживания уровня заряда батареи до определения близости устройства к лицу пользователя, цель UIDevice
— предоставлять данные об устройстве пользователя. Класс UIDevice
также предоставляет доступные свойства, относящиеся к идентификации особенностей устройства, таких как модель и версия iOS. Вы увидите некоторые из этих свойств в действии, когда мы войдем в учебник.
NSLocale
класс NSLocale
Класс NSLocale
помогает вашему приложению соответствовать культурным и лингвистическим соглашениям региона пользователя. Предоставляя средства для настройки форматирования для таких вещей, как символы валют, десятичные разделители, время или дата, приложение будет функционировать так, как ожидает пользователь. Кроме того, NSLocale
можно использовать, чтобы узнать, на какой язык настроен пользователь, — полезную информацию, когда пользователь отправляет вам электронное письмо за поддержкой.
Получение информации об устройстве
Начнем с получения модели устройства (iPhone, iPod touch или iPad) и версии iOS. Следующий код предоставляет специфическую информацию об устройстве из UIDevice
:
1
2
3
|
UIDevice *currentDevice = [UIDevice currentDevice];
NSString *model = [currentDevice model];
NSString *systemVersion = [currentDevice systemVersion];
|
В первой строке UIDevice
возвращает экземпляр устройства в его текущем состоянии. Отсюда мы получаем доступ к свойствам модели и версии системы, чтобы получить модель устройства и версию системы.
Получение языка пользователя
Далее мы получаем сведения о настройках языка и региона пользователя.
1
2
3
4
|
NSArray *languageArray = [NSLocale preferredLanguages];
NSString *language = [languageArray objectAtIndex:0];
NSLocale *locale = [NSLocale currentLocale];
NSString *country = [locale localeIdentifier];
|
Основной язык пользователя может быть получен с помощью метода NSLocale
preferredLanguages
NSLocale
, который возвращает текущую настройку языка пользователя. NSLocale
пользователя или страна / регион могут быть получены из возвращенного объекта NSLocale
. Метод экземпляра localeIdentifier
возвращает определенный код, который представляет страну / регион пользователя.
Получение версии приложения
Наконец, давайте выясним, какую версию приложения использует пользователь.
1
2
|
NSString *appVersion = [[NSBundle mainBundle]
objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
|
В файле info.plist приложения хранится информация о текущей версии приложения, и при доступе к mainBundle
с помощью kCFBundleVersionKey
возвращается версия приложения.
Регистрация данных устройства
Далее мы будем регистрировать собранные данные.
1
2
3
4
5
|
NSString *deviceSpecs =
[NSString stringWithFormat:@»%@ — %@ — %@ — %@ — %@»,
model, systemVersion, language, country, appVersion];
NSLog(@»Device Specs —> %@»,deviceSpecs);
|
В этом примере каждый фрагмент информации упакован в строку для отображения в консоли. При практическом использовании вы можете захотеть отобразить его в строке темы или теле письма с отзывами.
Вывод
При переписке с пользователями приложения лучше узнать больше об устройстве, если вам нужно предложить решения. Пользователям часто трудно сформулировать сценарий, с которым у них возникают проблемы. Зная больше об их устройстве, вы сможете лучше помочь им с их проблемой, в конечном итоге предоставляя лучший сервис и создавая более счастливых пользователей. Доступ к данным устройства также полезен для создания пользовательских взаимодействий в вашем приложении. Вопросы или комментарии? Оставьте их в разделе комментариев ниже или напишите мне в Twitter @aaron_crabtree .