让你的应用自动化起来

通用场景

在应用A中点击按钮,调起了应用B,应用B在启动后自动执行了一些动作(比如打开某个页面),像这种类似自动化的操作是怎么实现的呢?

真实场景

应用A中有一个投注签到功能,用户需要在其他应用中跳转到应用A中来自动签到。

一些思考

  • 他们的关系应该是"一对一"的,也就是用户在其他应用中每点一次按钮,都会跳转到应用A中执行相应的逻辑。
  • 并不是一跳转过来就无脑执行,而是在相应的时机执行,比如是进入页面后,数据加载完成后执行它相应的动作。

实现思路

1、先收集从其他应用调过来的意图

javascript 复制代码
export default class ActionQueue {
  static queue = [];

  static add(data) {
    const _data = Array.isArray(data) ? data : [data];

    ActionQueue.queue.push(..._data);
  }
}
javascript 复制代码
    ActionQueue.add({
      _actionType: 1001,
    });

2、在指定时机取出该意图进行相应的执行

javascript 复制代码
  static getActionData(_actionType) {
    const index = ActionQueue.queue.findIndex(
      v => v._actionType === _actionType,
    );

    if (index !== -1) {
      const action = ActionQueue.queue[index];
      ActionQueue.queue.splice(index, 1);

      return action;
    }
  }

在相应的时机执行该意图

javascript 复制代码
async function getData(){
	  const res = await fetchData()
	  ...
	  //执行
      const actionData = ActionQueue.getActionData(
        ActionType: 1001,
      );
      
       if (actionData) {
       	...//做相应的动作
      }
}
  • 完整类
javascript 复制代码
export default class ActionQueue {
  static queue = [];

  static add(data) {
    const _data = Array.isArray(data) ? data : [data];

    ActionQueue.queue.push(..._data);
  }

  static clear(_actionType) {
    if (!_actionType) {
      ActionQueue.queue = [];
      return;
    }

    ActionQueue.queue = ActionQueue.queue.filter(
      v => v._actionType !== _actionType,
    );
  }

  static getActionData(_actionType) {
    const index = ActionQueue.queue.findIndex(
      v => v._actionType === _actionType,
    );

    if (index !== -1) {
      const action = ActionQueue.queue[index];
      ActionQueue.queue.splice(index, 1);

      return action;
    }
  }
}
相关推荐
MXsoft61811 小时前
**运维监控技术演进:从数据采集到智能运维的****技术提升**
运维
12点一刻11 小时前
Hermes Agent 与 Superpowers 框架的区别?
运维·服务器
MXsoft61811 小时前
**混合云统一监控实践:私有云+公有云的一体化运维方案**
运维·网络·数据库
2501_9127840811 小时前
Taocarts深度解析:1688自动代采模块的Puppeteer自动化实战
运维·自动化
Dola_Zou11 小时前
边缘智能的“黑暗森林”:工业 AI 模型下沉的资产防护与变现密码
人工智能·安全·自动化·软件工程·软件加密
MXsoft61811 小时前
**断网续传与本地缓存:弱网环境下的监控数据保障方案**
运维·缓存·自动化
LT101579744412 小时前
2026年UI自动化测试平台选型指南:全界面自动化覆盖方案
运维·ui·自动化
曦尧12 小时前
GitHub - addyosmani/agent-skills:面向 AI 编程智能体的生产级工程技能 · GitHub
ai·自动化
csg110712 小时前
PIC16F1947驱动CH376芯片实现SD卡数据存储
单片机·嵌入式硬件·物联网·自动化
天青色等烟雨..12 小时前
智慧农林核心遥感技术99个案例实践
运维·人工智能·spring boot·后端·自动化