모바일웹에서 앱 호출하기
( 스키마를 이용한 앱 호출하기, 모바일웹에서 마켓 이동하기 )
앱을 만들때 커스텀 스키마를 등록을 해주고,
모바일웹에서 그 커스텀 스키마를 호출하는 방식이다.
안드로이드 매니페스트 파일
host를 main_web 으로 설정, scheme를 myappandroi 로 설정
<activity android:name=".MainActivity" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="main_web" android:scheme="myappandroi" />
</intent-filter>
</activity>
아이폰 TARGETS - URL Types 에 추가
Identifier를 com.myappandroid.m 으로 설정, scheme를 myappandroi 로 설정
Identifier : com.myappandroi.m
URL Schemes : myappandroi
Role : Editor
Javascript 파일에서..
안드로이드폰은 해당 앱이 있으면 앱을 실행하고, 없으면 플레이스토어로 이동이 잘되지만,
아이폰은 현재 코딩대로 하면 해당 앱이 있으면 앱을 실행하고, 해당 앱이 없으면 "오류 팝업 메시지" 가 나오고 잠시후에 앱스토어로 이동하는 방식이다. 해당 앱이 없을경우 처리가 원만하지 않아서... 그냥 무조건 앱스토어로 가도록 처리하는것도 좋을것 같다.
var userAgent = navigator.userAgent;
var visiteTm = ( new Date() ).getTime();
if(userAgent.match(".*Android.*")){
//안드로이드폰
// https://developer.chrome.com/multidevice/android/intents
// 앱이 있으면 앱 실행, 없으면 마켓 이동
location.href = 'intent://main_web#Intent;scheme=myappandroi;package=com.myappandroi.m;end';
//location.href = 'myappandroi://main_web'; // 안드로이드 앱 실행
}else if(userAgent.match(".*iPhone.*") || userAgent.match(".*iPad.*")){
//아이폰
setTimeout( function () {
if ( ( new Date() ).getTime() - visiteTm < 3000 ) { // 앱스토어 이동
location.href = "https://itunes.apple.com/app/id365494029";
}
} ,2500 );
setTimeout( function () { // 앱실행
location.href = "myappandroi://";
} ,0 );
}
참고 : https://marobiana.tistory.com/111
https://g-y-e-o-m.tistory.com/121
요즘은 Firebase 동적 링크를 많이 사용하곤 한다.
이 방식을 사용하여, 해당 앱이 없으면 설치를 해당앱이 있으면 앱 실행을 할 수 있다.
아래 링크를 확인해 보자
https://firebase.google.com/docs/dynamic-links?authuser=0&%3Bhl=ko&hl=ko
'iOS' 카테고리의 다른 글
모바일 웹에서 마켓으로 이동하기 (0) | 2019.07.01 |
---|---|
iOS Swift WKWebView 자동로그인, 쿠키저장 (0) | 2019.06.24 |
iOS Swift 일정시간 지연후 실행, 타이머 (0) | 2019.06.11 |
아이폰 아이콘에 뱃지 숫자 설정 (0) | 2019.06.07 |
iOS Swift Controller 실행 (Storyboard 실행) (0) | 2019.06.03 |