| Ветвь | Версии |
|---|---|
| владелец | ≥ 2,0 |
| Swift 4 - 4,2 | ≥ 1,3 <1,13 |
| Swift 3 | ≥ 1,0 <1,3 |
| Swift 2.3 | <1.0 |
DeviceKit -это замена типа UIDevice .
Смотрите наш подробный ChangeLog для последних функций, улучшений и исправлений ошибок.
DeviceKit может быть установлен различными способами.
pod 'DeviceKit' , '~> 5.2' pod 'DeviceKit' , '3.2' pod 'DeviceKit' , '~> 1.3' pod 'DeviceKit' , '~> 1.2.3' pod 'DeviceKit' , :git => 'https://github.com/devicekit/DeviceKit.git' , :branch => 'swift-2.3-unsupported'dependencies: [
. package ( url : " https://github.com/devicekit/DeviceKit.git " , from : " 4.0.0 " ) ,
/// ...
] dependencies: [
. package ( url : " https://github.com/devicekit/DeviceKit.git " , from : " 3.2.0 " ) ,
/// ...
] github "devicekit/DeviceKit" ~> 4.0
github "devicekit/DeviceKit" ~> 3.2
github "devicekit/DeviceKit" ~> 1.3
github "devicekit/DeviceKit" ~> 1.2.3
github "devicekit/DeviceKit" "swift-2.3-unsupported"
Чтобы установить его вручную, перетащите проект DeviceKit в проект вашего приложения в XCode. Или добавить его в качестве подмодуля GIT, работая:
$ git submodule add https://github.com/devicekit/DeviceKit.gitСначала не забудьте импортировать структуру:
import DeviceKitВот несколько примеров использования. Все устройства также доступны в качестве симуляторов:
. iPhone6 => . simulator ( . iPhone6 )
. iPhone6s => . simulator ( . iPhone6s )Вы можете попробовать эти примеры на игровой площадке.
Примечание:
Чтобы попробовать DeviceKit на игровой площадке, откройте
DeviceKit.xcworkspaceи постройте DeviceKit.FrameWork для любого симулятора сначала, выбрав «DeviceKit» в качестве вашей текущей схемы.
let device = Device . current
print ( device ) // prints, for example, "iPhone 6 Plus"
if device == . iPhone6Plus {
// Do something
} else {
// Do something else
} let device = Device . current
if device . isPod {
// iPods (real or simulator)
} else if device . isPhone {
// iPhone (real or simulator)
} else if device . isPad {
// iPad (real or simulator)
} let device = Device . current
if device . isSimulator {
// Running on one of the simulators(iPod/iPhone/iPad)
// Skip doing something irrelevant for Simulator
} let device = Device . current
switch device {
case . simulator ( . iPhone6s ) : break // You're running on the iPhone 6s simulator
case . simulator ( . iPadAir2 ) : break // You're running on the iPad Air 2 simulator
default : break
} let groupOfAllowedDevices : [ Device ] = [ . iPhone6 , . iPhone6Plus , . iPhone6s , . iPhone6sPlus , . simulator ( . iPhone6 ) , . simulator ( . iPhone6Plus ) , . simulator ( . iPhone6s ) , . simulator ( . iPhone6sPlus ) . simulator ( . iPhone8 ) , . simulator ( . iPhone8Plus ) , . simulator ( . iPhoneX ) , . simulator ( . iPhoneXS ) , . simulator ( . iPhoneXSMax ) , . simulator ( . iPhoneXR ) ]
let device = Device . current
if device . isOneOf ( groupOfAllowedDevices ) {
// Do your action
}Примечание:
Чтобы получить текущее состояние батареи, нам нужно установить
UIDevice.current.isBatteryMonitoringEnabledtrue. Чтобы избежать каких -либо проблем с вашим кодом, мы читаем текущую настройку и сбросим его до того, что было раньше, когда мы закончили.
if device . batteryState == . full || device . batteryState >= . charging ( 75 ) {
print ( " Your battery is happy! ? " )
}if device . batteryLevel >= 50 {
install_iOS ( )
} else {
showError ( )
}if device . batteryState . lowPowerMode {
print ( " Low Power mode is enabled! ? " )
} else {
print ( " Low Power mode is disabled! ? " )
}if device . isGuidedAccessSessionActive {
print ( " Guided Access session is currently active " )
} else {
print ( " No Guided Access session is currently active " )
}if device . screenBrightness > 50 {
print ( " Take care of your eyes! " )
}if Device . volumeAvailableCapacityForOpportunisticUsage ?? 0 > Int64 ( 1_000_000 ) {
// download that nice-to-have huge file
}
if Device . volumeAvailableCapacityForImportantUsage ?? 0 > Int64 ( 1_000 ) {
// download that file you really need
} Все идентификаторы моделей взяты с следующего веб -сайта: https://www.theiphonewiki.com/wiki/models или извлечены из приложения Simulator в комплекте с помощью Xcode.
Если у вас есть необходимость в конкретной функции, которую вы хотите реализовать, или если у вас возникла ошибка, откройте проблему. Если вы расширили функциональность DeviceKit самостоятельно и хотите, чтобы другие тоже его использовали, отправьте запрос на привлечение.
Полный список людей, которые внесли свой вклад в этот проект, доступен здесь. DeviceKit не был бы тем, что есть без вас! Большое спасибо!