Notice
Recent Posts
Recent Comments
Link
투케이2K
104. (TWOK/LOGIC) [Mobile] 모바일 ( android , ios ) 앱 스키마 scheme 접속 확인 및 웹뷰 브릿지 데이터 전달 로직 본문
투케이2K 로직정리
104. (TWOK/LOGIC) [Mobile] 모바일 ( android , ios ) 앱 스키마 scheme 접속 확인 및 웹뷰 브릿지 데이터 전달 로직
투케이2K 2024. 10. 23. 19:30[로직 정리]
정리 로직 : Mobile
상태 : [Mobile] 모바일 ( android , ios ) 앱 스키마 scheme 접속 확인 및 웹뷰 브릿지 데이터 전달 로직
[설 명]
// --------------------------------------------------------------------------------------
[사전) 설정 및 정보 확인 사항]
// --------------------------------------------------------------------------------------
- 웹뷰 브릿지 통신을 하기 위한 사전) 인터페이스 협의 필요
- Android : AndroidManifest.xml 파일에서 스키마 접속을 처리하려는 액티비티 설정 필요
- Ios : 프로젝트 URL Types 에서 스키마 접속 허용 처리를 위한 스키마 명칭 및 번들 아이디 설정 필요
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[로직 설명]
// --------------------------------------------------------------------------------------
1. 외부 앱 및 웹 페이지에서 MyApp 스키마 명칭 사용해 App 이동 수행 실시
2. MyApp 에서 스키마로 접속한 경우 체크 및 파라미터가 포함 되어 있는지 체크 수행 실시
-------------------------------------------------
[Android] : 스키마 처리 액티비티 : onCreate
-------------------------------------------------
Uri uri = getIntent().getData();
String total = String.valueOf(uri.toString()); // [스키마 + 호스트 + 데이터 전체]
String scheme = String.valueOf(uri.getScheme()); // [스키마]
String host = String.valueOf(uri.getHost()); // [호스트]
if (scheme.trim().equals("app") && host.trim().equals("login") && uri.getQueryParameterNames() != null){ // [스키마 명칭이 널이 아니고 파라미터 값이 널이 아닌 경우]
}
-------------------------------------------------
[Ios] : 스키마 처리 SceneDelegate : willConnectTo
-------------------------------------------------
if let _url = connectionOptions.urlContexts.first?.url {
let urlStr = _url.absoluteString // [스키마 주소값 가지고 온다]
let components = URLComponents(string: urlStr) // 전체 주소
//let pathData = components?.path ?? "" // http url path 경로
let schemeData = components?.scheme ?? "" // 스키마
let parameter = components?.query ?? "" // 파라미터
if parameter.count > 0 && parameter != "" { // 파라미터 값이 널이 아닌 경우
}
}
3. 스키마 파라미터를 앱 내부 프리퍼런스 저장 후 웹뷰 화면으로 전환 수행
>> 안드로이드의 경우 스키마로 접속한 경우 중복 실행 방지 위해 intent 이동 시 FLAG_ACTIVITY_NEW_TASK 설정
4. 모바일 ( Android , Ios ) 에서는 웹뷰 로드 후 저장 된 스키마 데이터가 있는 경우 브릿지로 데이터 전송 수행 실시
>> 브릿지로 데이터 전송 후 앱 저장 데이터 다시 초기화 필요
5. 웹에서는 브릿지로 스키마 정보가 넘어 온 경우 이벤트 페이지 이동 및 자동 로그인 처리 등 로직 처리 수행
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[Android - 웹뷰 클래스 정리]
https://blog.naver.com/kkh0977/222680670897?trackingCode=blog_bloghome_searchlist
[Ios - 웹뷰 클래스 정리]
https://blog.naver.com/kkh0977/222686770495?trackingCode=blog_bloghome_searchlist
[Android - C_MoveApp - 외부 앱 실행 , 스키마 실행 , 앱 설치 여부 , 마켓 이동 , 크롬 기반 외부 링크 이동]
https://blog.naver.com/kkh0977/222678185676?trackingCode=blog_bloghome_searchlist
[Ios - C_MoveApp - 외부 앱 실행 , 스키마 실행 , 앱 설치 여부 , 마켓 이동 , 크롬 기반 외부 링크 이동]
https://blog.naver.com/kkh0977/222683056507?trackingCode=blog_bloghome_searchlist
[Android - URL SCHEMA (스키마) 사용해 외부 앱 실행 및 QueryParameter 데이터 전송 실시]
https://blog.naver.com/kkh0977/222324984002?trackingCode=blog_bloghome_searchlist
[Ios - url scheme 스키마 데이터 전송 및 받은 데이터 확인]
https://blog.naver.com/kkh0977/222544821252?trackingCode=blog_bloghome_searchlist
https://blog.naver.com/kkh0977/222594008519?trackingCode=blog_bloghome_searchlist
[Android - 웹뷰 intent scheme 스키마 딥링크 확인 및 외부앱 수행 실시 - shouldOverrideUrlLoading]
https://blog.naver.com/kkh0977/222629678783?trackingCode=blog_bloghome_searchlist
[플러터 - App To App Scheme 스키마 이동 수행 - 앱 이동]
https://blog.naver.com/kkh0977/223495537293?trackingCode=blog_bloghome_searchlist
[Android - 앱 스키마 (scheme) 접속 시 중복 실행 방지 - 앱 아이콘 클릭 시 앱 초기화 현상 해결]
https://blog.naver.com/kkh0977/222696613021?trackingCode=blog_bloghome_searchlist
[Ios - url scheme 스키마 외부 앱 실행 및 앱 스토어 이동 실시 - canOpenURL always true and false]
https://blog.naver.com/kkh0977/222696853666?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
반응형
'투케이2K 로직정리' 카테고리의 다른 글
Comments