Notice
Recent Posts
Recent Comments
Link
투케이2K
115. (TWOK/LOGIC) [Ios] 기기 QR 스캔 및 스키마 scheme 정보 활용 다이렉트 AP 연결 로직 - NEHotspotConfigurationManager 본문
투케이2K 로직정리
115. (TWOK/LOGIC) [Ios] 기기 QR 스캔 및 스키마 scheme 정보 활용 다이렉트 AP 연결 로직 - NEHotspotConfigurationManager
투케이2K 2024. 11. 4. 19:50[로직 정리]
정리 로직 : Ios / 아이폰
상태 : [Ios] 기기 QR 스캔 및 스키마 scheme 정보 활용 다이렉트 AP 연결 로직 - NEHotspotConfigurationManager
[설 명]
// --------------------------------------------------------------------------------------
[사전) 설정 및 정보 확인 사항]
// --------------------------------------------------------------------------------------
- 하드웨어 : 기기에 스키마 정보 형식으로 이뤄진 QR 부착 필요 (사전 협의 필요)
>> 예시 : 호스트 명 지정 없음 : 스키마 접속 형태 : [testui://?name=twok&age=28]
>> 예시 : 호스트 명 지정 사용 : 스키마 접속 형태 : [testui://call?name=twok&age=28]
- 하드웨어 : 장치 AP 로컬 핫스팟 활성 수행 시 특정 SSID 정보로 와이파이 생성 필요 (DB 에 매핑 된 정보)
- Ios : 프로젝트 URL Types 에서 스키마 접속 허용 처리를 위한 스키마 명칭 및 번들 아이디 설정 필요
- Ios : QR 스캔을 하기 위한 info.plist 카메라 권한 설정 필요
- DB : 특정 암호화 스키마 명칭에 맞게 연결 될 SSID 정보 매핑 저장
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[로직 설명]
// --------------------------------------------------------------------------------------
1. 애플리케이션 실행 및 사용자에게 특정 카메라 권한이 부여 된 상태 인지 확인
2. 정상적으로 카메라 권한이 부여 된 경우 QR 스캔 화면 이동 수행
>> 권한이 부여 되어 있지 않은 경우는 사용자에게 [QR 스캔에 필요한 카메라 사용 권한을 활성해 주세요.] 팝업창 표시 및 설정창 이동
3. 기기에 부착된 스키마 정보 QR 스캔 수행
>> 예시 : testapp://call?ssid=AKORD789P
4. App 은 QR 을 스캔 한 정보가 스키마 형식이 맞는 경우 UIApplication.shared.open 스키마 외부 앱 열기 수행
>> 참고 : QR 을 스캔한 APP 과 스키마 이동 처리를 하는 APP , 스키마 접속 상태 확인 하는 APP 은 하나의 앱에서 수행
5. App SceneDelegate 클래스에서 스키마로 접속한 상태 확인 및 데이터 파싱 후 , 실제 로컬 핫스팟에 연결하기 위한 SSID 조회 요청 수행
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
print("[SceneDelegate >> willConnectTo :: UI창 선택적 구성 및 제공된 UI창에 Scene 연결]")
guard let _ = (scene as? UIWindowScene) else { return }
// [스키마 접속 체크] : [testapp://call?ssid=AKORD789P]
if let _url = connectionOptions.urlContexts.first?.url {
schemeHandleURL(url: _url) // 스키마 데이터 파싱 및 SSID 조회 요청 수행
}
}
6. 정상적으로 로컬 핫스팟 SSID 정보가 조회 된 경우 >> 다이렉트 AP 연결을 수행 하는 화면으로 전환 수행
>> SSID 정보가 조회 되지 않는 경우나, HTTP 통신 에러가 발생한 경우 에러 표시 화면으로 전환 수행
7. 다이렉트 AP 연결 화면에서 NEHotspotConfigurationManager 를 사용해 와이파이 연결 수행 실시
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[Ios - url scheme 스키마 데이터 전송 및 받은 데이터 확인]
https://blog.naver.com/kkh0977/222544821252?trackingCode=blog_bloghome_searchlist
https://blog.naver.com/kkh0977/222594008519?trackingCode=blog_bloghome_searchlist
[Ios - url scheme 스키마 외부 앱 실행 및 앱 스토어 이동 실시 - canOpenURL always true and false]
https://blog.naver.com/kkh0977/222696853666?trackingCode=blog_bloghome_searchlist
[모바일 ( android , ios ) 앱 스키마 scheme 접속 확인 및 웹뷰 브릿지 데이터 전달 로직]
https://blog.naver.com/kkh0977/223630712323?trackingCode=blog_bloghome_searchlist
[Swift - QR , Barcode 스캔 수행 실시 - AVCaptureDevice]
https://blog.naver.com/kkh0977/223299755604?trackingCode=blog_bloghome_searchlist
[Swift - yannickl QRCodeReader]
https://blog.naver.com/kkh0977/222550938341?trackingCode=blog_bloghome_searchlist
[Ios - getWifiIpAddress : 현재 연결 된 와이파이 (wifi) ip 주소 확인 - ifaddrs]
https://blog.naver.com/kkh0977/223291691739?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
반응형
'투케이2K 로직정리' 카테고리의 다른 글
Comments