목록투케이2K 로직정리 (55)
투케이2K
[로직 정리] 정리 로직 : MOBILE (Android / Ios) 상태 : [모바일] 흔들기 (shake) 이벤트 수행 및 알림 전달 로직 [설 명] [안드로이드] 1. A_Main 클래스 onCreate() 부분에서 SensorManager 서비스 등록 및 디바이스가 가속도 센서를 사용할 수 있는 지 체크 실시 2. A_Main 클래스에 흔들기 이벤트를 감지할 수 있는 onSensorChanged 메소드 등록 >> 웹뷰 로드 수행 실시 3. 웹뷰 자바스크립트 브릿지로 흔들기 이벤트 사용 명령 전달 받음 (Y / N) - 디바이스가 가속도 센서를 사용할 수 없는 경우는 >> 알림 팝업창 표시 수행 4. 실제로 디바이스 흔들기 수행 실시 5. 정상적으로 흔들기 이벤트가 발생한 경우 >> 흔들기 ..
[로직 정리] 정리 로직 : MOBILE (Android) 상태 : [Android] TCP / IP 소켓 통신 버퍼 관리 및 데이터 검증 로직 [설 명] [안드로이드] 1. 사전 TCP / IP 소켓 통신을 수행하기 위해 데이터 포맷 프로토콜 정의 실시 (STX / 데이터 길이 / 데이터 / ETX) 2. STX 시작 비트를 확인하면 버퍼에 순차적으로 데이터를 쌓는다 3. 버퍼는 ETX 종료 비트가 들어올 때까지 계속해서 들어온 데이터를 추가한다 4. ETX 종료 비트까지 정상적으로 받은 경우는 >> 데이터 검증을 수행한다 5. 데이터 길이 확인 >> 실제로 데이터 길이 만큼 버퍼에 쌓인 데이터 LENGTH 확인 6. 정상적으로 데이터 길이 만큼 버퍼에 데이터가 쌓인 경우 >> 데이터 파싱 등 ..
[로직 정리] 정리 로직 : MOBILE (Ios) 상태 : [Ios] 블루투스 (bluetooth) 출입 신호 활성 로직 [설 명] [IOS] 1. info plist 파일에 블루투스 및 위치 사용 권한을 등록 실시 2. A_Intro 수행 시 블루투스 및 위치 권한 사용 동의 팝업창 표시 실시 3. A_Main 클래스에서 자바스크립트 브릿지로 블루투스 신호 활성 명령 전달 받음 / 이미 블루투스 신호가 활성 중인 경우는 먼저, 종료 처리 4. A_Main 클래스에서는 블루투스 및 위치 사용 권한 부여 상태 확인 실시 5. 권한이 정상적으로 부여되지 않은 경우 >> 권한 동의 알림 팝업창 표시 >> 설정 클릭 시 >> 애플리케이션 설정 이동 6. 권한이 모두 정상적으로 부여 된 경우 >> 블루투..
[로직 정리] 정리 로직 : MOBILE (Android) 상태 : [Android] NFC 시스템 설정 및 동작 수행 로직 (HCE 통신 / AID 사용) [설 명] [안드로이드] 1. AndroidManifest.xml 파일에서 NFC 퍼미션 등록 실시 2. AndroidManifest.xml 파일에서 Nfc_Service 등록 및 서비스 내에 meta-data 로 aid_list xml 파일 등록 실시 3. aid_list xml 파일에서 하드웨어와 통신을 주고 받기 위한 AID 설정 실시 (AID 값이 다르면 하드웨어로 부터 신호를 받지 못함) - aid 값은 aid-group 그룹 내에서 aid-filter 로 등록 (aid-filter 로 다중 등록 가능) 4. A_Main 클래스 on..
[로직 정리] 정리 로직 : MOBILE (Android / Ios) 상태 : [모바일] 비콘 (beacon) 신호 활성 및 신호 스캔 로직 [설 명] [안드로이드] 1. A_Main 클래스 자바스크립트 브릿지에서 비콘 신호 스캔 명령 전달 받음 (uuid, major, minor) / (이미 기존에 수행 중인 경우 먼저, 종료 실시) 2. 필수 데이터 널 체크 방어 로직 확인 3. 정상적으로 key , value 값이 모두 부여되어 있는 경우 >> 사용자 디바이스 블루투스 , 위치 권한 부여 상태 확인 - 위치 권한 : [디바이스] 자체 위치 권한 체크 및 [애플리케이션] 위치 및 근처기기 권한 체크 필요 4. 만일, 권한이 부여되지 않은 경우 팝업창 알림 표시 수행 >> 팝업창 확인 버튼 클릭..
[로직 정리] 정리 로직 : MOBILE (Android / Ios) 상태 : [모바일] 앱 숏컷 아이콘 (ShortcutIcon) 생성 및 삭제 로직 [설 명] [안드로이드] 1. A_Main 클래스 자바스크립트 브릿지에서 초기 웹뷰 로딩 시 앱 숏컷 사용 여부 값 전달 받음 (Y / N) 2. 안드로이드 A_Main 클래스 onStop() 또는 onPause() 부분에서 앱 숏컷 사용 여부에 따라서 앱 숏컷 아이콘 생성 실시 3. 사용자가 앱 숏컷 아이콘 클릭 접속 시 >> A_ShorCut 숏컷 클래스에서 A_Intro 로 다시 인텐트 이동 실시 4. A_Intro 클래스에서는 앱 숏컷으로 접속 시 A_Main 인텐트 이동 시 FLAG_ACTIVITY_NEW_TASK 새로운 태스크로 이동 (..
[로직 정리] 정리 로직 : MOBILE (Ios) 상태 : [Ios] 푸시 (push) 알림 포그라운드 , 백그라운드 , 앱 kill 상태 클릭 이벤트 로직 [설 명] [IOS] 1. SceneDelegate 클래스 sceneDidBecomeActive (Scene 활성화 및 사용자 이벤트에 응답 실시) 부분에서 Application_Run 프리퍼런스 값 저장 실시 (TRUE) 2. AppDelegate 클래스 applicationWillTerminate , didDiscardSceneSessions 부분에서 Application_Run 프리퍼런스 값 초기화 실시 3. A_Main 클래스 viewDidLoad , 포그라운드 부분에서 A_Main_Run 실행 프리퍼런스 값 저장 실시 (TRUE) ..
[로직 정리] 정리 로직 : MOBILE (Android) 상태 : [Android] 푸시 (push) 알림 포그라운드 , 백그라운드 , 앱 kill 상태 클릭 이벤트 로직 [설 명] [안드로이드] 1. Application 클래스에서 onCreate() 시작 부분에서 A_Main_Run 실행 프리퍼런스 값 초기화 , Application_Run 프리퍼런스 값 저장 (TRUE) 실시 2. ProgramTaskService 프로그램 태스크 관리 서비스 클래스에서 onTaskRemoved 작업 목록 삭제 감지 부분에서 A_Main_Run , Application_Run 프리퍼런스 값 초기화 실시 3. A_Main 클래스 onCreate() 부분과 onResume() 부분에서 A_Main_Run 실행 ..
[로직 정리] 정리 로직 : MOBILE (ANDROID / IOS) 상태 : [모바일] 웹뷰 (webview) 사용 시 로딩 (loading) 속도 향상 및 디스크 캐시 사용 실시 [설 명] [사전 설정] 1. 웹에서는 해시 값을 사용해 css 파일 명칭 지정 2. 웹에서는 해시 값을 사용해 js 파일 명칭 지정 [안드로이드] 1. 웹뷰 초기 설정에서 앱 캐시 사용 설정 지정 main_webview.getSettings().setAppCacheEnabled(true); // 앱 내부 캐시 사용 여부 설정 main_webview.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); // 웹뷰 캐시 모드 설정 2. 필요에 따라 모든 데이..
[로직 정리] 정리 로직 : MOBILE (Android) 상태 : [Android] Webview 웹뷰 로딩 완료 상태 감지 및 로딩 화면 닫기 처리 [설 명] 1. Android Webview 로드 상태 확인 부분에서 웹뷰 로드가 완료 되면 로딩 화면 닫기 처리 수행 실시 2. 웹뷰 초기 설정 부분 main_webview.setWebChromeClient 에서 onProgressChanged 로드 상태 100 퍼센트가 되면 로딩 화면 닫기 처리 3. 웹뷰 클라이언트 상속 받는 class MainWeb extends WebViewClient 부분에서 onPageFinished 웹뷰 로드 완료 상태 일 경우 로딩 화면 닫기 처리
[로직 정리] 정리 로직 : MOBILE (IOS) 상태 : [IOS] WkWebview 웹뷰 COOKIE 쿠키 공유 [설 명] [IOS] 1. 웹뷰 웹뷰 초기 설정 셋팅 수행 실시 및 로드 하기 (전) 웹뷰 헤더 쪽에 쿠키 삽입 , 웹뷰 로드 수행 실시 - 쿠키 추가 셋팅 위함 : 웹뷰 WKWebViewConfiguration.websiteDataStore 설정을 >> WKWebsiteDataStore.nonPersistent() 로 설정 - 헤더 쪽 쿠키 삽입 실시 : URLRequest.addValue("데이터", forHTTPHeaderField: "Cookie") - 웹뷰 로드 실시 : webview.load(request) 2. WKUserContentController 부분 자바스크립..
[로직 정리] 정리 로직 : MOBILE (IOS) 상태 : [IOS] WkWebview 웹뷰 COOKIE 쿠키 공유 [설 명] [IOS] 1. 웹뷰 웹뷰 초기 설정 셋팅 수행 실시 및 로드 하기 (전) 웹뷰 헤더 쪽에 쿠키 삽입 , 웹뷰 로드 수행 실시 - 쿠키 추가 셋팅 위함 : 웹뷰 WKWebViewConfiguration.websiteDataStore 설정을 >> WKWebsiteDataStore.nonPersistent() 로 설정 - 헤더 쪽 쿠키 삽입 실시 : URLRequest.addValue("데이터", forHTTPHeaderField: "Cookie") - 웹뷰 로드 실시 : webview.load(request) 2. 웹뷰 로드 완료 상태 100 프로가 되면 다시 webvie..
[로직 정리] 정리 로직 : MOBILE (ANDROID / IOS) 상태 : [모바일] 프로세스 생명주기 상태 관리 (create , destroy) [설 명] [Android] 1. Application 클래스 생성 및 AndroidManifest.xml 파일에서 지정 실시 - Application 클래스에서 onCreate 부분에서 최초 프로세스 실행 초기화 수행 실시 - AndroidManifest.xml 파일에서 application 부분에서 Application 클래스 지정 실시 2. Service 클래스 생성 및 AndroidManifest.xml 파일에서 지정 실시 - Service 클래스에서 onTaskRemoved 메소드 부분에서 프로세스 종료 상태 감지 및 초기화 수행 실시 -..
[로직 정리] 정리 로직 : MOBILE (ANDROID / IOS) 상태 : [모바일] 웹뷰 (webview) 로드 시 쿠키 사용해 웹뷰 로드 수행 실시 [설 명] [Android] 1. 초기 웹뷰 로드를 수행하기 전 이전에 저장된 쿠키 및 세션 데이터가 있으면 초기화 수행 실시 - webview.clearCache - webview.clearHistory - CookieManager.removeSessionCookies - CookieManager.removeAllCookies 2. 웹뷰 초기 설정 셋팅 수행 실시 및 로드 하기 (전) 쿠키 매니저를 사용해 쿠키 삽입 실시 - CookieManager.setCookie 3. 웹뷰 로드 수행 실시 - webview.loadUrl 4. 실시간 웹뷰..
[로직 정리] 정리 로직 : MOBILE (ANDROID / IOS) 상태 : [모바일] 웹뷰에서 window open 상태 감지 및 child 웹뷰 호출 실시 및 로직 처리 [설 명] 1. 부모 웹뷰 (parentWebview) 에서 window open 상태 감지 실시 - IOS : func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) - AOS : main_webview.setWebChromeClient >> public boolean onCre..