UNPKG

enketo-core

Version:

Extensible Enketo form engine

55 lines (49 loc) 1.14 kB
/** * @module sniffer * */ const ua = navigator.userAgent; const pf = navigator.platform; // We usually don't need to know which OS is running, but want to know // whether a specific OS is runnning. /** * @namespace os * */ const os = { /** * @type {string} * */ get ios() { // in iOS13, the default Safari setting is 'Request Desktop Site' to be On. // The platform and useragent no longer show iPad/iPhone/iPod // so we use a trick that will work for a while until MacOs gets touchscreen support. return ( /iPad|iPhone|iPod/i.test(pf) || (/Mac/i.test(pf) && document.documentElement.ontouchstart !== undefined) ); }, /** * @type {string} * */ get android() { return /android/i.test(ua); }, /** * @type {string} * */ get macos() { return /Mac/.test(ua); }, }; /** * @namespace browser * */ const browser = { /** ua * @type {string} * */ get safari() { return /^((?!chrome|android).)*safari/i.test(ua); }, }; export { os, browser };