AutoJs 常用代码

/*
* QQ: 1659809758
*/

检测抓包工具

/**
 * 检查 代理 (抓包工具)
 */
function CheckProxy() {
  var enumeration = java.net.NetworkInterface.getNetworkInterfaces();
  while (enumeration.hasMoreElements()) {
    var name = enumeration.nextElement().getName();
    if (name == "tun0") {
      //存在抓包
      return true;
    }
  }
  return false;
}

捕获所有Http异常

//捕获http 异常 (粘贴到自己的代码中即可)
(function() {
    let request = http.request;
    // 覆盖http关键函数request,其他http返回最终会调用这个函数
    http.request = function() {
        // 捕捉所有异常
        try {            
            return request.apply(http, arguments);
        } catch (e) {            
            console.error(e);
            // 出现异常返回null
            return null;
        }
    }
})();

判断 当前日期时间 是否到时

//test
if (GetTimeOutResult("2020-04-21 16:46:43", "second", -2)) {
  console.warn("yes  到时间了");
} else {
  console.warn("no   没到时间");
}

/**
 *  计算当前时间是否超时
 * @param {string} oldDateTime 对比的原始时间   格式:  2020-04-17 16:46:43   2020/04/17 16:46:43
 * @param {string} calculationAttribute 计算的属性  "year" "month" "day" "hour" "minute" "second"
 * @param {number} num  增减的 数值    例子:    减少 -1   增加 1
 */
function GetTimeOutResult(oldDateTime, calculationAttribute, num) {
  var nowTime = GetFormatDateTime(new Date());

  //替换为斜杠
  var oldTime = new Date(oldDateTime.replace(/-/g, "/"));

  //增减属性
  if (calculationAttribute && calculationAttribute.length > 2) {
    switch (calculationAttribute.toLowerCase()) {
      case "year":
        oldTime.setFullYear(oldTime.getFullYear() + num);
        break;
      case "month":
        oldTime.setMonth(oldTime.getMonth() + num);
        break;
      case "day":
        oldTime.setDate(oldTime.getDate() + num);
        break;
      case "hour":
        oldTime.setHours(oldTime.getHours() + num);
        break;
      case "minute":
        oldTime.setMinutes(oldTime.getMinutes() + num);
        break;
      case "second":
        oldTime.setSeconds(oldTime.getSeconds() + num);
        break;
      default:
        break;
    }
  }
  //获取最终格式化后的 时间
  oldTime = GetFormatDateTime(oldTime);

  console.warn("当前时间: " + nowTime);
  console.warn("目标时间: " + oldTime);
  //进行对比
  return nowTime > oldTime;
}

/**
 * 格式化时间
 * @param {*} date
 */
function GetFormatDateTime(date) {
  var year = date.getFullYear();
  var month = DateTimePrefixZero(date.getMonth() + 1);
  var day = DateTimePrefixZero(date.getDate());
  var hour = DateTimePrefixZero(date.getHours());
  var minute = DateTimePrefixZero(date.getMinutes());
  var second = DateTimePrefixZero(date.getSeconds());
  var millisecond = DateTimePrefixZero(date.getMilliseconds());
  return (
    year + "/" + month + "/" + day + " " + hour + ":" + minute + ":" + second
  );

  /**
   * 前缀0
   * @param {*} s
   */
  function DateTimePrefixZero(s) {
    if (s < 10) {
      s = "0" + s;
    }
    return s;
  }
}

前缀 补0

/**
 * 前缀 补 0
 * @param num: 被操作数
 * @param n: 固定的总位数
 */
function PrefixZero(num, n) {
  return (Array(n).join(0) + num).slice(-n);
}

后缀 补0 __(小数点后2位)

/**
 * 后缀补 0  (小数点2位)
 * @param {*} x
 */
function SuffixZero(x) {
  var f_x = parseFloat(x);
  if (isNaN(f_x)) {
    return 0;
  }
  var f_x = Math.round(x * 100) / 100;
  var s_x = f_x.toString();
  var pos_decimal = s_x.indexOf(".");
  if (pos_decimal < 0) {
    pos_decimal = s_x.length;
    s_x += ".";
  }
  while (s_x.length <= pos_decimal + 2) {
    s_x += "0";
  }
  return s_x;
}

获取 当前日期时间 yyyy-MM-dd HH:mm:ss

/**
 * 时间格式化
 */
Date.prototype.Format = function (fmt) {
  // author: meizz
  var o = {
    "M+": this.getMonth() + 1, // 月份
    "d+": this.getDate(), // 日
    "H+": this.getHours(), // 小时
    "m+": this.getMinutes(), // 分
    "s+": this.getSeconds(), // 秒
    "q+": Math.floor((this.getMonth() + 3) / 3), // 季度
    S: this.getMilliseconds(), // 毫秒
  };
  if (/(y+)/.test(fmt))
    fmt = fmt.replace(
      RegExp.$1,
      (this.getFullYear() + "").substr(4 - RegExp.$1.length)
    );
  for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt))
      fmt = fmt.replace(
        RegExp.$1,
        RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)
      );
  return fmt;
};

/**
 * 获取当前时间
 */
function GetNowTime() {
  return new Date().Format("yyyy-MM-dd HH:mm:ss");
}

取随机数

/**
 * 取随机数     (0,10  取出的是 0-9)
 * @param {number} min 最小值(包含)
 * @param {number} max 最大值(不包含)
 */
function GetRandom(min, max) {
  var num = Math.floor(Math.random() * (max - min) + min);
  return num;
}

计时器


//创建
var TimerHelper = Timer();

//初始化 定时器 (设置一个编号)
TimerHelper.timerSign(1);
 
// 判断是否 到时间 (单位: 秒)
if(TimerHelper.timer(1, 2 * 60))
{
 	console.log("到时间了")
}

//--------------------------
//--------------------------
/**
 * 定时器
 */
function Timer() {
  /**
   * 定时器池
   */
  var timerPool = Array();

  var func = {};

  /**
   * 初始化定时器
   */
  func.timerSign = function (id) {
    timerPool[id] = new Date().getTime();
  };

  /**
   * 判断定时器是否 到时间 ( 单位: 秒)
   */
  func.timer = function (id, diff) {
    var nowTime = new Date().getTime();

    if (nowTime - timerPool[id] >= diff * 1000) {
      //重置定时器
      timerPool[id] = new Date().getTime();
      return true;
    } else {
      return false;
    }
  };

  return func;
}

计算时间差 (用来 显示运行时长)

/**
 * 时间差    var startTime = new Date();
 * @param {int} startTime
 */
function TimeDis(startTime) {
  var start_time = Date.parse(startTime); //开始时间的时间戳
  var end_time = Date.parse(new Date()); //当前时间的时间戳

  if (end_time < start_time) {
    //  截止时间已过
    return false;
  } else {
    //计算相差天数
    var time_dis = end_time - start_time;
    var days = Math.floor(time_dis / (24 * 3600 * 1000));
    //计算出小时数
    var leave1 = time_dis % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
    var hours = Math.floor(leave1 / (3600 * 1000));
    if (days > 0) {
      hours = hours + days * 24;
    }
    //计算相差分钟数
    var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
    var minutes = Math.floor(leave2 / (60 * 1000));
    //计算相差秒数
    var leave3 = leave2 % (60 * 1000); //计算小时数后剩余的毫秒数
    var second = leave3 / 1000;
    return hours + "时" + minutes + "分" + second + "秒";
  }
}

获取控件的值

/**
 * 获取UI中的值
 * @param {*} id 界面控件ID
 */
function GetUiText(id) {
  return ui[id].getText() + "";
}

function GetUISwitch(id) {
  return ui[id].checked;
}

Json 转 JavaMap

function ObjectToMap(obj) {
  if (obj == null || obj === undefined) {
    return null;
  }
  let map = new java.util.HashMap();
  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      map.put(key, obj[key]);
    }
  }
  return map;
}

你可能感兴趣的:(自动化工具)