은행 사이트들의 경우 보안 프로그램을 설치 안하였을 경우, 아래와 같이 계속 설치하라는 페이지가 뜬다.
위 항목을 어떻게 구현 하였을까?
웹 브라우저로 내 PC의 OS 설치 여부를 알수 있다는 것이 의아해서 찾아 보았다.
인터넷을 찾아보면
아래 내용 처럼 나오고 소스 코드가 나온다.
자세한 소스코드 설명이 없어서 주석을 추가하였다.
1. 내용
- 인터벌 함수를 이용해서 hidden 을 계속 확인한다.
- 타임아웃 함수를 이용해서 특정시간이 되면 앱이 설치 안되어있다고 판단한다.
2. 문제
- 단순참고용 정도로 사용하면 좋을거 같습니다.
- 많이 테스트 안해보았습니다.
- document.webkitHidden || document.hidden 를 이용해서 설치 여부를 확인 하는 방법 입니다.
- 크롬에서 지원하는 intent 방식을 사용하면 항상 마켓이 실행되서 체크하기 어려우니 꼭 커스텀 스킴으로 테스트 해야 합니다.
#앱스키마
#프로그램 설치시, 프로그램에서 자동적으로 설정해둔 앱스키마 이다.
var appSchem = 'mayapp://launch?Data=abcdefg';
isMyApp();
location.href = appSchem;
function isMyApp(){
function clearTimers(){
clearInterval(heartbeat);
clearTimeout(timer);
}
function intervalHeartbeat(){
if(document.webkitHidden || document.hidden){
clearTimers();
console.log('앱이 설치 되어 있습니다.');
}
}
heartbeat = setInterval(intervalHeartbeat, 200);
var deLay = 1000;
timer = setTimeout(function() {
console.log('앱이 없습니다.');
}, deLay);
}
위 주석에서 보듯이, PC 및 다양한 환경에서 설치한 프로그램에는 레지스트리 편집기로 보면, 앱 스키마가 지정되어있다.
웹을 생성시 js에 프로그램마다 있는 고유한 앱스키마를 호출하여, 앱 설치 여부를 확인하면 된다.
'언어 > Javascript' 카테고리의 다른 글
[Javascript] vscode 에서 실행 및 개발 환경 셋팅 (0) | 2022.03.10 |
---|