Development/기타
[ javascript / vus.js ] 모바일 웹일 경우 창 닫기
Jin’s
2021. 6. 23. 17:37
반응형
기획에서 모바일 웹에서 창을 닫아달라는 요청이 있었다.
이 로직을 태우면서 발견한 여러가지 문제점을 적어두려고 한다.
1. 개발한 링크를 문자에서 바로 누르고 들어갈 경우
1-1. 싱글페이지일 경우
이때는 닫기가 잘 된다
1-2. 싱글페이지가 아닐 경우
첫 화면의 창 닫기 로직을 태우면 잘 되지만, 화면 이동을 했을 경우부터는 동작을 하지 않는다.
2. 문자에서 받았지만 직접 url을 입력하여 웹을 동작시켰을 경우
2-1. 모든 경우
안드로이드에서는 blank 화면으로 꺼질 수는 있으나 ios에서는 동작하지 못함
아래의 로직을 태웠을때 잘 동작할 경우와 동작 하지 않을 경우에 대한 컨트롤이 어렵기 때문에
결국 해당 기능은 제거하기로 결론이 났다.
const _ua = window.navigator.userAgent || window.navigator.vendor || window.opera
const type = checkMobile();
if (type == 'kakaotalk') {
//kakaotalk
window.location.href = (/iPad|iPhone|iPod/.test(_ua)) ? 'kakaoweb://closeBrowser': 'kakaotalk://inappbrowser/close';
}else if(type == 'ios'){
//ios
window.open('', '_self', '')
window.close();
}else {
window.open('about:blank','_self').self.close();
}
// 브라우저 구별 function 참고 하기 위해 적어둠
// 기기구분
function checkMobile(){
var ua = navigator.userAgent.toLowerCase();
if ( ua.indexOf('kakaotalk') > -1) {
//카카오톡
return "kakaotalk";
} else if ( ua.indexOf('android') > -1) {
//안드로이드
return "android";
} else if ( ua.indexOf("iphone") > -1||ua.indexOf("ipad") > -1||ua.indexOf("ipod") > -1 ) {
//ios
return "ios";
} else {
//ios, 안드로이드 외
return "other";
}
}
반응형