퍼블리싱/html css js

[Javascript] safari에서 window.open

임고미 2021. 7. 13. 10:16
728x90
300x250

* 해당 작업은 react라이브러리로 페이지 작업하다 확인한 이슈임니당

결론 : safari에서 window.open 쓸땐 함수에 함수에 함수 타지 말고, 직접적으로 넣어주자

----------

상황 :
하이브리드앱 (웹앱) 만드는 중에 

앱, 웹, 모바일 웹 을 구분해서 alert 을 띄워야 하는상황이 있었습니다

먼저 구분은

1. 모바일 앱 :
    웹단에서 구분할 수 없으므로 안드로이드, IOS에서 작업해서 넘겨줘야합니다 (따라서 확인값만 알면 구분할 수 있습니다.)

2. 이 외     

//pc구분
export const isPc = /win16|win32|win64|mac|macintel/i.test(
  window.navigator.userAgent
);
//safari구분
export const isSafari = /Safari/i.test(window.navigator.userAgent);

//모바일 구분
export const isMobile = /iPhone|iPad|iPod|Samsung|lgTel|blackberry|symbian|Android/i.test(
  window.navigator.userAgent
);

//안드로이드 구분
export const isAndroid = /Android/i.test(window.navigator.userAgent);

//ios구분
export const isIos = /iPhone|iPad|iPod/i.test(navigator.userAgent);

 

모바일 웹(아이폰 등)에서 safari브라우저 킨것을 구분하기위해 isSafari 를 조건문에 넣어주면 safari만 걸릴줄알았는데 아니더라구요.
(크롬도 true가 뜹니다)

chrom에서 확인한 결과값
safari에서 확인한 console값

따라서 모바일 웹에서 사파리 구분해주려면 isIos를 함께 조건문에 추가해주면 됩니당!

 

728x90
300x250