diginext-utils
Version:
README.md
58 lines • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isInAppWebview = exports.isFacebookWebview = exports.ua = exports.isLandscape = exports.isPotrait = void 0;
const isPotrait = () => {
if (typeof window == "undefined")
return false;
if (!window.orientation)
return window.matchMedia("(orientation: portrait)").matches;
return !(window.orientation === 90 || window.orientation === -90);
};
exports.isPotrait = isPotrait;
const isLandscape = () => {
return !(0, exports.isPotrait)();
};
exports.isLandscape = isLandscape;
const ua = () => {
if (typeof navigator == "undefined")
return null;
if (typeof window == "undefined")
return null;
return navigator.userAgent || navigator.vendor || window.opera;
};
exports.ua = ua;
const isFacebookWebview = () => {
const _ua = (0, exports.ua)();
if (typeof _ua != "undefined")
return _ua.indexOf("FBAN") > -1 || _ua.indexOf("FBAV") > -1;
return false;
};
exports.isFacebookWebview = isFacebookWebview;
const isInAppWebview = () => {
try {
const ua = navigator.userAgent;
const vendor = navigator.vendor;
// Detect iOS WebView
const isIOSWebView = /(iPhone|iPod|iPad)(?!.*Safari\/)/i.test(ua);
// Additional check for iOS in-app browsers, excluding Chrome
const isIOSInAppBrowser = isIOSWebView ||
(/(iPhone|iPod|iPad)/.test(ua) &&
!/Safari/.test(ua) &&
!/(CriOS|FxiOS|OPiOS)/.test(ua) &&
vendor === "Apple Computer, Inc.");
// Detect Android WebView
const isAndroidWebView = /Android.*wv|Android.*Version\/[0-9]\.0/.test(ua);
// Exclude Chrome, Firefox, and Samsung Internet on Android
const isAndroidStockBrowser = /Android.*Version\//.test(ua);
const isAndroidChrome = /Android.*Chrome\//.test(ua) && !/Version\//.test(ua);
const isAndroidFirefox = /Android.*Firefox\//.test(ua);
const isAndroidSamsung = /Android.*SamsungBrowser\//.test(ua);
return (isIOSInAppBrowser ||
(isAndroidWebView && !isAndroidStockBrowser && !isAndroidChrome && !isAndroidFirefox && !isAndroidSamsung));
}
catch (error) {
return true;
}
};
exports.isInAppWebview = isInAppWebview;
//# sourceMappingURL=browser.js.map