iOS with Swift - 앱에서 디바이스 버전에 따른 분기 처리
UIDevice.current().systemVersion
if(UIDevice.current().systemVersion.hsPrefix("9"){
//9버전만 사용가능
}
else if(UIDevice.current().systemVersion.hsPrefix("10"){
//10버전만 사용가능
}
// 마지막 *는 인자값이 끝났다는 의미
if #availavle(iOS 9, OSX 10.10, watchOS 1, *) {
//IOS 9 , OS X 10.10 , watcchOS 1 만 사용가능
} else {
// 그외에 버전에서의 처리
}
/* 블루투스 사용 가능한지 확인 */
@objc
func checkBleEnable(_ call: CAPPluginCall) {
//TODO: 블루투스 사용 가능한지 확인 코드 구현
call.resolve([
"support": false,
"permission": false,
"bluetoothOn": false,
])
}
/* 블루투스 권한 요청 */
@objc
func requestBluetoothPermissions(_ call: CAPPluginCall) {
//TODO: IOS 블루투스 권한 요청 구현
call.resolve()
}
public override func load() {
//TODO: 격리이탈 클래스 초기화
//TODO: AmoOmega 클래스 초기화
//TODO: 컨텍스트 객체 초기화
//TODO: 노티피케이션 초기화
}
/* IOS API Level 확인 */
@objc
func getSdkInt(_ call: CAPPluginCall) {
//TODO: 버전구하는 구현 필요
let level = 13;
call.resolve(["sdkInt": level])
}
/* Retrofit 설정 (baseUrl, jwt) */
@objc
func setRetrofitConfig(_ call: CAPPluginCall) {
let baseUrl: String = call.getString("BaseUrl") ?? ""
let jwt: String = call.getString("jwt") ?? ""
//TODO: baseUrl, jwt 로컬 저장, Retrofit interceptor 초기화
call.resolve();
}
/* 노티피케이션, Exception 메세지 등 Locale 설정 */
@objc
func setLocale(_ call: CAPPluginCall) {
let localeCode: String = call.getString("localeCode") ?? "";
//TODO: IOS Locale 설정 코드 구현 필요
call.resolve();
}
/* 격리 주소, 격리 반경 설정 */
@objc
func setQuarantineArea(_ call: CAPPluginCall){
let latitude = call.getDouble("latitude");
let longitude = call.getDouble("longitude");
let radius = call.getInt("radius");
//TODO: 격리 구역 로컬 저장 코드 구현
call.resolve();
}
/* 알람 설정 */
@objc
func setAlarm(_ call: CAPPluginCall) {
//TODO: IOS 백그라운드 반복주기 스레드 구현 필요
call.resolve();
}
/* 등록된 알람이 있는지 확인 */
@objc
func isAlarmRegistered(_ call: CAPPluginCall) {
//TODO: IOS 백그라운드 스레드가 동작하고 있는지 확인 코드 구현 필요
let isRegistered: Bool = false
call.resolve(["isRegistered": isRegistered])
}
/* 위치권한, 블루투스 권한 확인 */
@objc
override public func checkPermissions(_ call: CAPPluginCall) {
let backGroundAccess: Bool = false
let bluetoothPermissions: Bool = false
//TODO: 위치권한, 블루투스 권환 확인 구현 필요
call.resolve(["backGroundAccess": backGroundAccess, "bluetoothPermissions": bluetoothPermissions])
}
/* 위치 권한 요청 */
@objc
func requestLocationPermissions(_ call: CAPPluginCall) {
//TODO: IOS 백그라운드 위치권한 요청 구현
call.resolve()
}
/* 블루투스 권한 요청 */
@objc
func requestBluetoothPermissions(_ call: CAPPluginCall) {
//TODO: IOS 블루투스 권한 요청 구현
call.resolve()
}
/* GPS 지원되는지 확인 */
@objc
func checkGpsSupport(_ call: CAPPluginCall) {
//TODO: GPS 지원되는지 확인 코드 구현
call.resolve()
}
/* 블루투스 사용 가능한지 확인 */
@objc
func checkBleEnable(_ call: CAPPluginCall) {
//TODO: 블루투스 사용 가능한지 확인 코드 구현
call.resolve([
"support": false,
"permission": false,
"bluetoothOn": false,
])
}