본문 바로가기
IT 개발

[iOS] 모바일 웹에서 앱 설치 여부 확인하기(javascript사용, Interval과 setTimeOut을 활용)

by 로보찌빠냥 2020. 3. 30.

모바일 웹에서 앱 설치 여부 확인하기

모바일 웹에서는 인텐트 등 여러가지 방법으로 앱을 열 수 있지만

마켓에 등록되어있지 않은 앱이라던지 등등

그냥 앱실행 또는 메시지 만 보여주고 싶은경우가 있습니다


아래와 같이 Interval과 setTimeOut을 활용해서

Uri scheme 으로 내 앱을 실행 하고 실행이 없을 시에는 브라우저가 활성화 됩니다.

앱이 활성화 되고 브라우저가 비활성화 되었을 시 앱이 설치되었다고 판단하고

필요한 동작을 해주시면 됩니다


-요약

브라우저 활성화 : 앱설치 안됨 판단

브라우저 비활성 : 앱이 설치되어 실행되고 있다고 판단


소스코드


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<script>


// 앱 스키마 uri

var launchAppUrl = 'myAppScheme://'; // 앱 스키마

var timer; // 타이머

var schInterval; // 인터벌


// 인터벌, 타이머 삭제

function clearTimer(){

clearInterval(schInterval);

clearTimeout(timer);

}


// 인터벌 마다 동작할 기능

function intervalSch(){

// 매 인터벌 마다 웹뷰가 활성화 인지 체크

if(document.webkitHidden || document.hidden){// 웹뷰 비활성화

clearTimer();// 앱이 설치되어있을 경우 타이머 제거

alert("앱이 설치 되어 있습니다.");

}else{ // 웹뷰 활성화

console.log("타이머 동작");

}

}



$(document).ready(function(){

$("button").click(function(){


// 앱 실행(iOS인 경우)

location.href = launchAppUrl;


// 앱이 설치 되어있는지 체크

schInterval = setInterval(intervalSch, 500);


timer = setTimeout(function(){

alert('앱이 설치되어있지 않습니다.');

clearInterval(schInterval);

}, 2000);


});

});

</script>


<body>

<button>button</button>

</body>

반응형

댓글