utils.js 5.26 KB
/**
 * Created by DEV005 on 2017/8/31.
 */

import React, { Component } from 'react';
import { BackHandler,AppState,StyleSheet,View,Text
    , NativeModules,AsyncStorage,NavigationActions,
    ActivityIndicator,TouchableOpacity,Image,Touch,Platform,Dimensions
} from 'react-native';

import Toast from 'react-native-root-toast';
import AppService from "../service/AppService";
/**
 * 冒一个时间比较短的Toast
 * @param content
 */
export const xnToast = (content) => {
    if (global.toast !== undefined) {
        Toast.hide(toast);
    };
    global.toast = Toast.show(content.toString(), {
        duration: Toast.durations.LONG,
        position: Toast.positions.CENTER,
        shadow: true,
        animation: true,
        hideOnPress: true,
        delay: 0
    });
};

export const formatStringWithHtml = (originString) => {
  if (originString === undefined) {
    return '';
  }
  const newString = originString
    .replace(/ /g, ' ')
    .replace(/"/g, '"')
    .replace(/&/g, '&')
    .replace(/&lt;/g, '<')
    .replace(/&gt;/g, '>');
  return newString;
};
// 获取主题色
export function getHomeColor(){
    if(global.homeColor == undefined){
        // #8A0886 紫色测试
        global.homeColor = "#3399ff";
        return String(global.homeColor);
    }else{
        return String(global.homeColor);
    }
}
// 获取app传入的配置参数,这个方法只需要调用一次
export async function getConfigTheme(){
    try {
        var result= await NativeModules.system.configTheme();
        global.isNew = true;
        global.role = (JSON.parse(result).role ||"" ).toString();
        global.homeColor = (JSON.parse(result).themeColor ||"#3399ff").toString();
        global.weChatBySmallProgramAppId = (JSON.parse(result).WeChatBySmallProgramAppId ||"" ).toString();
        if(Platform.OS === 'ios'){
            global.showWchatShare = JSON.parse(result).showWchatShare || false;
        }else{
            global.showWchatShare = JSON.parse(result).showWchatShare || false;
        }
        // 是否是导航进入
        global.navigateMode = JSON.parse(result).navigateMode || false;
        if(global.navigateMode === 'true' || global.navigateMode == true){
            global.navigateMode = true;
        }else{
            global.navigateMode = false;
        }
        // app分支,默认配置为测试环境
        global.appTarget = (JSON.parse(result).appTarget ||"xntalkTest" ).toString();

    }catch(e){
        global.isNew = false;
        // #8A0886 紫色测试
        global.homeColor = "#3399ff";
        global.showWchatShare = false;
        global.navigateMode = false;
    }finally{
        console.log('getConfigTheme 完成!!!');
        console.log(global.appTarget);
        console.log('-----------------------');
        console.log(global);
    }
}


export function isIphoneX() {
    let dimen = Dimensions.get('window');
    return (
        Platform.OS === 'ios' &&
        !Platform.isPad &&
        !Platform.isTVOS &&
        (dimen.height === 812 || dimen.width === 812)
    );
}

export function isIphoneMax() {
    let dimen = Dimensions.get('window');
    return (
        Platform.OS === 'ios' &&
        !Platform.isPad &&
        !Platform.isTVOS &&
        (dimen.height > 812 || dimen.width > 812)
    );
}


export function getHeaderHeight() {
    if( Platform.OS === 'android'){
        return 48;

    }else if(Platform.OS === 'ios') {

        if(isIphoneX()){
            return 88;

        }else {
            return 64;
        }
    }
}

export function xnBorderWidth() {
    if(isIphoneX()){
        return 1;
    }else if(isIphoneMax()){
        return 1;
    } else {
        return 0.5;
    }
}

export function getHeaderPadding() {
    if( Platform.OS === 'android'){
        return 0;
    }else if(Platform.OS === 'ios') {
        if(isIphoneX()){
            return 44;
        }else {
            return 20;
        }
    }
}

export function getFooterBottom() {
    if( Platform.OS === 'android'){
        return 0;
    }else if(Platform.OS === 'ios') {
        if(isIphoneX()){
            return 0;
        }else if(isIphoneMax()){
            return 34;
        }else{
            return 0;
        }
    }
}

export function toPersonalPageWithUserId(userId){
    if(!!!userId){
        xnToast('无法与该用户私信');
    }else if(userId == global.userId){
        xnToast('不能与自己私信');
    }else{
        let _this = this;
        let vm = {
            userId: userId,
        };
        AppService.getUnionByUserId(vm).then(data => {
            if (data.errors == null || data.errors.length > 0) {
                xnToast(data.errors[0].message);
                return
            }
            console.log(data);

            if(!!data.union){
                let union = data.union;
                if(!!union.imId){
                    NativeModules.system.presentPersonal(union.imId);
                }else{
                    xnToast('无法与该用户私信');
                }
            }else{
                xnToast('无法与该用户私信');
            }
        });
    }
}




const xnUtils={
    xnToast:xnToast,
    isIphoneX:isIphoneX,
    getHeaderHeight:getHeaderHeight,
    getHeaderPadding:getHeaderPadding,
    getFooterBottom:getFooterBottom,
    xnBorderWidth:xnBorderWidth,
}
export default xnUtils;