29 lines
		
	
	
		
			911 B
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			911 B
		
	
	
	
		
			JavaScript
		
	
	
import { getWindow } from 'ssr-window';
 | 
						|
let browser;
 | 
						|
function calcBrowser() {
 | 
						|
  const window = getWindow();
 | 
						|
  let needPerspectiveFix = false;
 | 
						|
  function isSafari() {
 | 
						|
    const ua = window.navigator.userAgent.toLowerCase();
 | 
						|
    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;
 | 
						|
  }
 | 
						|
  if (isSafari()) {
 | 
						|
    const ua = String(window.navigator.userAgent);
 | 
						|
    if (ua.includes('Version/')) {
 | 
						|
      const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));
 | 
						|
      needPerspectiveFix = major < 16 || major === 16 && minor < 2;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  return {
 | 
						|
    isSafari: needPerspectiveFix || isSafari(),
 | 
						|
    needPerspectiveFix,
 | 
						|
    isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)
 | 
						|
  };
 | 
						|
}
 | 
						|
function getBrowser() {
 | 
						|
  if (!browser) {
 | 
						|
    browser = calcBrowser();
 | 
						|
  }
 | 
						|
  return browser;
 | 
						|
}
 | 
						|
export { getBrowser }; |