AutoJs 常用代碼

檢測抓包工具

/**
 * 檢查 代理 (抓包工具)
 */
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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章