UNPKG

weex-nuke

Version:

基于 Rax 、Weex 的高性能组件体系 ~~

106 lines (98 loc) 3.46 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _nukeEnv = require('../Env/index.js'); var expressionBinding = void 0; try { expressionBinding = require('@weex-module/expressionBinding'); } catch (err) { if (_nukeEnv.isWeex) { console.warn('[Warning] current env not support expressionBinding'); } } // eslint-disable-next-line var Detection = _extends({}, _nukeEnv.appInfo); Detection.isWeex = _nukeEnv.isWeex; Detection.isWeb = _nukeEnv.isWeb; var appName = _nukeEnv.appInfo.appName && _nukeEnv.appInfo.appName.toUpperCase(); if (_nukeEnv.isWeex) { var deviceInfo = typeof WXEnvironment !== 'undefined' ? WXEnvironment : {}; // eslint-disable-line Detection = Object.assign(Detection, { Android: _nukeEnv.appInfo.platform === 'android', iOS: _nukeEnv.appInfo.platform === 'iOS', isAliApp: true, isTB: appName === 'TB', isTM: appName === 'TM' || appName === 'TMALL', // 猫客中,appName是tmall isQN: appName === 'QN', isLZD: appName === 'LA' || appName === 'LA-ANDROID' || appName === 'LAZADA', appVersion: _nukeEnv.appInfo.appVersion, weexVersion: _nukeEnv.appInfo.weexVersion, osVersion: _nukeEnv.appInfo.osVersion }); } else { var ua = window.navigator.userAgent; Detection = Object.assign(Detection, { Android: /Android/gi.test(ua), iOS: /iPhone|iPad|iPod/gi.test(ua), isAliApp: /AliApp\([A-Z-_]+\/[0-9.]+\)/gi.test(ua), isTB: appName === 'TB', isTM: appName === 'TM' || appName === 'TMALL', // 猫客中,appName是tmall isQN: appName === 'QN', isLZD: appName === 'LA' || appName === 'LA-ANDROID' || appName === 'LAZADA', appVersion: _nukeEnv.appInfo.appVersion }); } /** * @param {object} params params.iosVer params.andVer params.isCheckOS * isCheckOS 是否判断系统版本。默认为false,判断app版本 * iosVer iOS判断基础版本 * andVer android判断基础版本 */ Detection.gt = function (version, isCheckOS) { if (!isCheckOS && !Detection.appVersion) { return false; } var checkVer = isCheckOS ? Detection.osVersion : Detection.appVersion; if (checkVer === version) { return true; } if (!version) { version = '0.0'; } checkVer = checkVer.split('.'); version = version.split('.'); for (var i = 0; i < checkVer.length; i += 1) { var len = i + 1; for (var j = 0; j < len; j += 1) { var ver1 = +checkVer[j]; var ver2 = version[j]; if (ver1 > ver2) { return true; } else if (ver1 < ver2) { return false; } else if (ver1 === ver2 && checkVer.length === version.length && j === 3) { return true; } } } return false; }; if (Detection.isWeex) { // 判断系统版本,用于探测动画 if (Detection.Android) { // 针对4.3以下版本的android,不使用expressionBinding Detection.isHighOS = Detection.gt('4.3', true); } if (expressionBinding && expressionBinding.enableBinding) { if (Detection.Android && Detection.isHighOS) { Detection.epEnable = true; } if (Detection.iOS) { Detection.epEnable = true; } } } exports.default = Detection; module.exports = exports['default'];