UNPKG

diginext-utils

Version:
51 lines (50 loc) 2.16 kB
export const isPotrait = () => { if (typeof window == "undefined") return false; if (!window.orientation) return window.matchMedia("(orientation: portrait)").matches; return !(window.orientation === 90 || window.orientation === -90); }; export const isLandscape = () => { return !isPotrait(); }; export const ua = () => { if (typeof navigator == "undefined") return null; if (typeof window == "undefined") return null; return navigator.userAgent || navigator.vendor || window.opera; }; export const isFacebookWebview = () => { const _ua = ua(); if (typeof _ua != "undefined") return _ua.indexOf("FBAN") > -1 || _ua.indexOf("FBAV") > -1; }; export const isInAppWebview = () => { try { const ua = navigator.userAgent; const vendor = navigator.vendor; // Detect iOS WebView const isIOSWebView = /(iPhone|iPod|iPad)(?!.*Safari\/)/i.test(ua); // Detect iOS apps that use WKWebView const isIOSWKWebView = /AppleWebKit/.test(ua) && /Mobile\/\w+/.test(ua) && !/(Cr|Fx|OP|OPR)\//.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; } };