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 }; |