autojs修改悬浮窗按钮点击事件

简介: 牙叔教程 简单易懂

牙叔教程 简单易懂


main.js

"ui";
let fv = require("./fv");
ui.layout(
  <vertical>
    <button id="显示悬浮窗">显示悬浮窗</button>
    <button id="修改悬浮窗按钮点击事件">修改悬浮窗按钮点击事件</button>
  </vertical>
);
let action = function () {
  toastLog("悬浮窗按钮点击事件");
};
ui.显示悬浮窗.click(function () {
  fv.show();
});
ui.修改悬浮窗按钮点击事件.click(function () {
  fv.setBtnAction(action);
});


fv.js

let window;
let btnAction = function () {};
function 是否有悬浮窗权限2() {
  return floaty.checkPermission();
}
function 申请悬浮窗权限2() {
  log("申请悬浮窗权限2");
  var intent = new Intent();
  intent.setAction("android.settings.action.MANAGE_OVERLAY_PERMISSION");
  activity.startActivityForResult(intent, 8000);
}
function show() {
  if (!是否有悬浮窗权限2()) {
    toastLog("请开启悬浮窗权限");
    申请悬浮窗权限2();
    return;
  } else {
    window = floaty.rawWindow(
      <vertical>
        <button id="btn" padding="10">
          点我
        </button>
        <button id="move" padding="10">
          移动
        </button>
      </vertical>
    );
    setSuspendedWindowMoveWithFinger(window, "move");
    window.btn.click(function () {
      btnAction();
    });
  }
}
function hide() {}
function getBtnAction() {
  return btnAction;
}
function setBtnAction(action) {
  btnAction = action;
}
let fv = {
  window: window,
  show: show,
  hide: hide,
  setBtnAction: setBtnAction,
  getBtnAction: getBtnAction,
};
module.exports = fv;
function setSuspendedWindowMoveWithFinger(suspendedWindow, viewId) {
  //记录按键被按下时的触摸坐标
  var x = 0,
    y = 0;
  //记录按键被按下时的悬浮窗位置
  var windowX, windowY;
  //记录按键被按下的时间以便判断长按等动作
  var downTime;
  suspendedWindow[viewId].setOnTouchListener(function (view, event) {
    switch (event.getAction()) {
      case event.ACTION_DOWN:
        x = event.getRawX();
        y = event.getRawY();
        windowX = suspendedWindow.getX();
        windowY = suspendedWindow.getY();
        downTime = new Date().getTime();
        return true;
      case event.ACTION_MOVE:
        //移动手指时调整悬浮窗位置
        suspendedWindow.setPosition(windowX + (event.getRawX() - x), windowY + (event.getRawY() - y));
        moving = true;
        //如果按下的时间超过1.5秒判断为长按,退出脚本
        return true;
      case event.ACTION_UP:
        moving = false;
        //手指弹起时如果偏移很小则判断为点击
        if (Math.abs(event.getRawY() - y) < 5 && Math.abs(event.getRawX() - x) < 5) {
          if (new Date().getTime() - downTime > 2000) {
            hideSuspendedWindow();
          }
        }
        return true;
    }
    return true;
  });
}


环境


手机: Mi 11 Pro


Android版本: 12


Autojs版本: 9.1.6



名人名言


思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程


声明


部分内容来自网络
本教程仅用于学习, 禁止用于其他用途

相关文章
Auto.js VSCode 代码提示怎么生效(代码补全)
Auto.js VSCode 代码提示怎么生效(代码补全)
884 0
autojs普通版控制台美化
autojs普通版控制台美化
1415 0
autojs之停用音量上停止脚本
autojs 8.7.1自带示例中提供了某些开关
2576 0
|
9月前
|
安全 数据安全/隐私保护
屏幕自动点击器, 手机自动点击器, 自动连点器屏幕【autojs】
完整UI界面:包含悬浮窗控制面板,支持拖动位置调整 核心功能:单点/连续点击、位置记录、任务执行与停止
|
9月前
|
安全 Android开发 数据安全/隐私保护
安卓手机屏幕连点器,屏幕自动点击器,手机自动点击器【autojs】
完整UI界面:包含坐标设置、间隔时间、随机偏移等参数配置区域
|
监控 JavaScript 前端开发
autojs,监控屏幕以及获取所有应用
autojs,监控屏幕以及获取所有应用
|
JavaScript 前端开发 Android开发
安卓自动化 | autox.js
安卓自动化 | autox.js
2901 8
|
存储 JavaScript Android开发
AutoJs4.1.0实战教程---终极福利Apk
AutoJs4.1.0实战教程---终极福利Apk
1091 0
|
数据采集 JavaScript Shell
AutoJs4.1.0 基本介绍
AutoJs4.1.0 基本介绍
1606 1
|
Android开发
autojs控制台美化
牙叔教程 简单易学 使用场景 自定义控制台
1089 0

热门文章

最新文章