weex-nuke
Version:
基于 Rax 、Weex 的高性能组件体系 ~~
106 lines (98 loc) • 3.46 kB
JavaScript
;
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'];