/**
 * 浏览器类型
 * @type {{versions: {iPhone: boolean, webApp: boolean, trident: boolean, gecko: boolean, android: boolean, mobile: boolean, iPad: boolean, ios: boolean, presto: boolean, webKit: boolean}, language: string}}
 */
export const browser = {
    versions: function() {
        let u = navigator.userAgent, app = navigator.appVersion;
        return {         //移动终端浏览器版本信息
            trident: u.indexOf('Trident') > -1, //IE内核
            presto: u.indexOf('Presto') > -1, //opera内核
            webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
            gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
            mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
            ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
            android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器
            iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
            iPad: u.indexOf('iPad') > -1, //是否iPad
            webApp: u.indexOf('Safari') === -1, //是否web应该程序，没有头部与底部
        };
    }(),
    language: (navigator.browserLanguage || navigator.language).toLowerCase(),
};

/**
 * 浏览器类型
 * @type {{QQ: string, WX: string, WEIBO: string, PC: string, WXWORK: string, UNKNOWN: string, ANDROID: string, IOS: string}}
 */
export const BrowType = {
    ANDROID: 'android',
    WXWORK: 'wxwork',
    WX: 'wx',
    WEIBO: 'WeiBo',
    QQ: 'qq',
    IOS: 'ios',
    PC: 'pc',
    UNKNOWN: 'UNKNOWN',
};

/**
 * 获取当前的浏览器类型
 * @returns {string}
 */
export function browserType() {
    let ua = navigator.userAgent.toLowerCase();//获取判断用的对象
    if (browser.versions.mobile) {//判断是否是移动设备打开。browser代码在下面
        let result = ua.match(/MicroMessenger/i);
        if (result && result.includes('micromessenger')) {
            return BrowType.WX;
        }
        result = ua.match(/WeiBo/i);
        if (result && result.includes('weibo')) {
            //在新浪微博客户端打开
            return BrowType.WEIBO;
        }
        result = ua.match(/QQ/i);
        if (result && result.includes('qq')) {
            //在QQ空间打开
            return BrowType.QQ;
        }
        if (browser.versions.ios) {
            //是否在IOS浏览器打开
            return BrowType.IOS;
        }
        if (browser.versions.android) {
            //是否在安卓浏览器打开
            return BrowType.ANDROID;
        }
    } else {
        let result = ua.match(/wxwork/i);
        if (result && result.includes('wxwork')) {
            return BrowType.WXWORK;
        }
        return BrowType.PC;
        //否则就是PC浏览器打开
    }
}
