autojs-Hook按钮点击事件

简介: 牙叔教程 简单易懂

牙叔教程 简单易懂


"ui";
importClass(android.view.View);
importClass(java.lang.Class);
ui.layout(
  <vertical margin="100">
    <button id="btn">按钮</button>
  </vertical>
);
ui.btn.click(function () {
  toastLog("你点击了按钮");
});
hookOnClickListener(ui.btn);
function hookOnClickListener(view) {
  // 第一步:反射得到 ListenerInfo 对象
  // getListenerInfo = View.class.getDeclaredMethod("getListenerInfo");
  getListenerInfo = Class.forName("android.view.View").getDeclaredMethod("getListenerInfo");
  getListenerInfo.setAccessible(true);
  listenerInfo = getListenerInfo.invoke(view);
  // 第二步:得到原始的 OnClickListener事件方法
  listenerInfoClz = Class.forName("android.view.View$ListenerInfo");
  mOnClickListener = listenerInfoClz.getDeclaredField("mOnClickListener");
  mOnClickListener.setAccessible(true);
  // 第三步:用 Hook代理类 替换原始的 OnClickListener
  hookedOnClickListener = JavaAdapter(View.OnClickListener, {
    onClick: function (v) {
      toastLog("Hook Click Listener");
      log(v);
    },
  });
  mOnClickListener.set(listenerInfo, hookedOnClickListener);
}


参考

Android Hook 机制之简单实战

环境

手机: Mi 11 Pro

Android版本: 11

Autojs版本: 9.0.13


名人名言


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


声明


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

相关文章
uniapp组件库uview1的u-button的问题,u-button多次点击只触发事件一次
uniapp组件库uview1的u-button的问题,u-button多次点击只触发事件一次
346 0
|
Android开发
autojs修改悬浮窗按钮点击事件
牙叔教程 简单易懂
1278 0
|
5月前
4.Electron之自定义菜单(绑定快捷键、点击事件)
4.Electron之自定义菜单(绑定快捷键、点击事件)
606 1
|
6月前
|
移动开发 JavaScript 小程序
uView Notify 消息提示
uView Notify 消息提示
108 0
|
JavaScript
Vue CKEditor5 剪切板事件监听,贴贴事件拦截
Vue CKEditor5 剪切板事件监听,贴贴事件拦截
327 0
|
JavaScript
vant/vue手机端长按事件以及禁止长按弹出菜单
vant/vue手机端长按事件以及禁止长按弹出菜单
524 0
|
前端开发
前端hook项目moblie总结笔记-useEffect中直接使用async
前端hook项目moblie总结笔记-useEffect中直接使用async
110 0
|
前端开发
前端hook项目pc总结笔记-hook项目文件自定义扎号onchange事件
前端hook项目pc总结笔记-hook项目文件自定义扎号onchange事件
88 0
|
前端开发
前端hook项目moblie总结笔记-useEffect中直接使用async
前端hook项目moblie总结笔记-useEffect中直接使用async
78 0
|
移动开发 小程序 前端开发
关于 React 中使用 wx-open-launch-weapp 唤起微信小程序
关于 React 中使用 wx-open-launch-weapp 唤起微信小程序
867 1
关于 React 中使用 wx-open-launch-weapp 唤起微信小程序