UNPKG

@plattar/plattar-ar-adapter

Version:

Plattar AR Adapter for interfacing with Google & Apple WebAR

97 lines (96 loc) 3.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Util = void 0; /** * Static Utility Functions */ class Util { static isValidServerLocation(server) { if (!server) { return false; } switch (server.toLowerCase()) { case "staging.plattar.space": case "cdn-staging.plattar.space": case "staging": case "app.plattar.com": case "cdn.plattar.com": case "prod": case "production": case "review.plattar.com": case "review": case "qa": case "dev": case "developer": case "development": case "local": case "localhost": return true; } return false; } static canAugment() { return Util.canQuicklook() || Util.canSceneViewer(); } static canQuicklook() { if (Util.isIOS()) { const isWKWebView = Boolean((window && window).webkit && window.webkit.messageHandlers); if (isWKWebView) { return Boolean(/CriOS\/|EdgiOS\/|FxiOS\/|GSA\/|DuckDuckGo\//.test(navigator.userAgent)); } const tempAnchor = document.createElement("a"); return tempAnchor.relList && tempAnchor.relList.supports && tempAnchor.relList.supports("ar"); } return false; } static canSceneViewer() { return Util.isAndroid() && !Util.isFirefox() && !Util.isOculus(); } static canRealityViewer() { return Util.isIOS() && Util.getIOSVersion()[0] >= 13; } static isSafariOnIOS() { return Util.isIOS() && Util.isSafari(); } static isChromeOnIOS() { return Util.isIOS() && /CriOS\//.test(navigator.userAgent); } static isIOS() { return (/iPad|iPhone|iPod/.test(navigator.userAgent) && !self.MSStream) || (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1); } static isAndroid() { return /android/i.test(navigator.userAgent); } static isFirefox() { return /firefox/i.test(navigator.userAgent); } static isOculus() { return /OculusBrowser/.test(navigator.userAgent); } static isSafari() { return Util.isIOS() && /Safari\//.test(navigator.userAgent); } static getIOSVersion() { if (/iP(hone|od|ad)/.test(navigator.platform)) { const v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/); if (v !== null) { return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3], 10)]; } } if (/Mac/.test(navigator.platform)) { const v = (navigator.appVersion).match(/Version\/(\d+)\.(\d+)\.?(\d+)?/); if (v !== null) { return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3], 10)]; } } return [-1, -1, -1]; } static getChromeVersion() { const raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./); if (raw !== null) { return parseInt(raw[2], 10); } return 1; } } exports.Util = Util;