Things take time

[iOS & Android] 웹 브라우저에서 앱 실행하기 본문

iOS & Android

[iOS & Android] 웹 브라우저에서 앱 실행하기

겸손할 겸 2019. 1. 8. 14:35

[기본은 스키마]


iOS : http://g-y-e-o-m.tistory.com/33


Android : http://g-y-e-o-m.tistory.com/32


안드로이드의 경우 매니페스트 내에 선언한 스키마(Scheme), 호스트(host)란 안드로이드 속성으로 선언하여, 외부에서 앱을 실행시킬 수 있었다.

아이폰의 경우 Info.plist 안에 URL Type안에 스키마(Scheme)값을 입력하여 앱을 호출할 수 있었다.


그런데 이 방법의 한계는, 앱이 설치되지 않았을 때를 제어할 수 없다.

기본적으로 앱이 설치되어있다면 앱 실행을, 그렇지 않다면 플레이스토어 링크로 이동했으면 하는 것이다.


[TimeOut & Intent]


실제 다른 곳들도 많이 쓰는 방법이고, 뒤지면 많이 나오는게 JS에서 time out을 설정하여 앱을 먼저 실행시키는(스키마)코드를 실행하고 일정 시간 뒤에 설치링크로 보내는 것이다. 그렇게 되면 앱이 깔려있으면 앱이 먼저 실행되므로 사용자는 앱을 실행시킨 것처럼 보인다. (스키마 사용법은 위 두 포스팅 참고)


이 방법은 아이폰에서 적합하다. 

				setTimeout( function () {
					if ( ( new Date() ).getTime() - visitedAt < 2000 ) {
						location.href = "https://itunes.apple.com/app/id앱스토어아이디";
					}
				} ,500 );
				setTimeout( function () {
					location.href = "스키마://";
				} ,0 );

안드로이드도 공통적으로 사용해도 되나, 안드로이드는 웹에서 설치 여부를 판단하여 플레이스토어 혹은 앱 실행이 가능하다. (간편)

location.href = "Intent://호스트#Intent;scheme=스키마;package=패키지명;end";

매니페스트에 등록된 호스트, 스키마, 패키지 값을 넣어주면 끝!


★★★★★