autojs实现ui和逻辑分离,简化业务逻辑

Posted 九黎AJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了autojs实现ui和逻辑分离,简化业务逻辑相关的知识,希望对你有一定的参考价值。

QQ群698307198欢迎加入,和各位大神一同交流

正文部分

群里有人问。我就直接写个博客简单回答吧
ui布局该怎么写怎么写
代码部分你写好了直接剪贴到另一个js
然后在原来的文件里
直接require(“代码.js”);即可

在这里插入图片描述
我们先正常写一个

分离前

"ui";


ui.layout(
    <vertical>
    
        <appbar>
            <toolbar title="抖音刷金币"/>
        </appbar>
        
        <Switch id="autoService" text="无障碍服务" checked="{{auto.service != null}}" padding="8 8 8 8" textSize="25sp"/>
        <Switch id="overlayService" text="悬浮窗权限" checked="{{auto.service != null}}" padding="8 8 8 8"textSize="15sp" /> 
        
        <frame height="200" gravity="center">
            <text text="文本" gravity="center"/>
        </frame>
        
        <button id="start" text="开始运行"/>
        
    </vertical>
);




ui.autoService.on("check", function(checked) {
    // 用户勾选无障碍服务的选项时,跳转到页面让用户去开启
    if(checked && auto.service == null) {
        app.startActivity({
            action: "android.settings.ACCESSIBILITY_SETTINGS"
        });
    }
    if(!checked && auto.service != null){
        auto.service.disableSelf();
    }
});

// 当用户回到本界面时,resume事件会被触发
ui.emitter.on("resume", function() {
    // 此时根据无障碍服务的开启情况,同步开关的状态
    ui.autoService.checked = auto.service != null;
});
//开启悬浮窗权限
ui.overlayService.on("check", function (checked) {
    // 用户勾选无障碍服务的选项时,跳转到页面让用户去开启
    if (checked) {
        int = app.startActivity({
            packageName: "com.android.settings",
            className: "com.android.settings.Settings$AppDrawOverlaySettingsActivity",
            data: "package:" + auto.service.getPackageName().toString()
        });
        toast("请打开悬浮窗开关");
    }

     if (!checked && auto.service != null) {
         auto.service.disableSelf();
         toast("已关闭悬浮窗权限");
         }
    });

ui.start.on("click", function(){
    //程序开始运行之前判断无障碍服务
    if(auto.service == null) {
        toast("请先开启无障碍服务!");
        return;
    }
    main();
});





function main() {
   
    
threads.start(function() {
        toast("准备运行。这是没分离的")
       
 // 这里写脚本的主逻辑
        })
    
}

分离后

ui部分设置为main.js

"ui";


ui.layout(
    <vertical>
    
        <appbar>
            <toolbar title="抖音刷金币"/>
        </appbar>
        
        <Switch id="autoService" text="无障碍服务" checked="{{auto.service != null}}" padding="8 8 8 8" textSize="25sp"/>
        <Switch id="overlayService" text="悬浮窗权限" checked="{{auto.service != null}}" padding="8 8 8 8"textSize="15sp" /> 
        
        <frame height="200" gravity="center">
            <text text="文本" gravity="center"/>
        </frame>
        
        <button id="start" text="开始运行"/>
        
    </vertical>
);




ui.autoService.on("check", function(checked) {
    // 用户勾选无障碍服务的选项时,跳转到页面让用户去开启
    if(checked && auto.service == null) {
        app.startActivity({
            action: "android.settings.ACCESSIBILITY_SETTINGS"
        });
    }
    if(!checked && auto.service != null){
        auto.service.disableSelf();
    }
});

require('代码.js');

然后新建一个代码.js文件

ui.autoService.on("check", function(checked) {
    // 用户勾选无障碍服务的选项时,跳转到页面让用户去开启
    if(checked && auto.service == null) {
        app.startActivity({
            action: "android.settings.ACCESSIBILITY_SETTINGS"
        });
    }
    if(!checked && auto.service != null){
        auto.service.disableSelf();
    }
});

// 当用户回到本界面时,resume事件会被触发
ui.emitter.on("resume", function() {
    // 此时根据无障碍服务的开启情况,同步开关的状态
    ui.autoService.checked = auto.service != null;
});
//开启悬浮窗权限
ui.overlayService.on("check", function (checked) {
    // 用户勾选无障碍服务的选项时,跳转到页面让用户去开启
    if (checked) {
        int = app.startActivity({
            packageName: "com.android.settings",
            className: "com.android.settings.Settings$AppDrawOverlaySettingsActivity",
            data: "package:" + auto.service.getPackageName().toString()
        });
        toast("请打开悬浮窗开关");
    }

     if (!checked && auto.service != null) {
         auto.service.disableSelf();
         toast("已关闭悬浮窗权限");
         }
    });

ui.start.on("click", function(){
    //程序开始运行之前判断无障碍服务
    if(auto.service == null) {
        toast("请先开启无障碍服务!");
        return;
    }
    main();
});





function main() {
   
    
threads.start(function() {
        toast("准备运行,ui和逻辑分离成功")
       
 // 这里写脚本的主逻辑
        })
    
}

然后运行main.js这不就ok了嘛。

参考文章

所属软件

韶image.png

声明

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

QQ群

698307198
扫一扫二维码,加入群聊.QQ

在这里插入图片描述

以上是关于autojs实现ui和逻辑分离,简化业务逻辑的主要内容,如果未能解决你的问题,请参考以下文章

QT之界面与业务逻辑的分离

用户界面与业务逻辑的分离

wpf MVVM框架基础

UI与数据分离 与 UI的演进

声网Agora 教育 aPaaS 灵动课堂升级:UI与业务逻辑分离,界面功能自定义更灵活

4. PyQt5-实现显示和业务逻辑分离