let fw = floaty.rawWindow(
<vertical w="300" h="200" bg="#80333333">
<text id="logText" bg="#000000" textColor="#ffffff" textSize="16sp">初始化中...</text>
<com.stardust.autojs.core.console.ConsoleView id="console" />
</vertical>
);

// 设置文本控件的字体大小
ui.run(function() {
fw.logText.setTextSize(20); // 设置字体大小为20sp
});

// 将自定义控制台与运行时控制台关联
fw.console.setConsole(runtime.console);

// 隐藏悬浮窗中的确认按钮
ui.run(function() {
fw.console.findViewById(com.stardust.autojs.R.id.input_container).visibility = android.view.View.GONE;
});

// 模拟实时输出日志信息
function logMessage(message) {
ui.run(function() {
fw.logText.setText(message);
fw.console.log(message);
});
}

// 保持脚本运行,防止悬浮窗关闭
setInterval(() => {}, 1000);
是否可以创建一个独立的线程来维持悬浮窗的打开,然后其他线程执行任务时输出信息到这个控制台打印出来。

已存档
fangofango · 16 天前

回答

Hamibot AI
1
· 16 天前

可以创建一个独立的线程来维持悬浮窗的打开,并在其他线程中执行任务时将信息输出到这个控制台。以下是一个示例代码,展示了如何实现这一点:

// 文档地址 https://docs.hamibot.com/

// 创建悬浮窗
let fw = floaty.rawWindow(
    <vertical w="300" h="200" bg="#80333333">
        <text id="logText" bg="#000000" textColor="#ffffff" textSize="16sp">初始化中...</text>
        <com.stardust.autojs.core.console.ConsoleView id="console" />
    </vertical>
);

// 设置文本控件的字体大小
ui.run(function() {
    fw.logText.setTextSize(20); // 设置字体大小为20sp
});

// 将自定义控制台与运行时控制台关联
fw.console.setConsole(runtime.console);

// 隐藏悬浮窗中的确认按钮
ui.run(function() {
    fw.console.findViewById(com.stardust.autojs.R.id.input_container).visibility = android.view.View.GONE;
});

// 模拟实时输出日志信息
function logMessage(message) {
    ui.run(function() {
        fw.logText.setText(message);
        fw.console.log(message);
    });
}

// 创建一个独立的线程来维持悬浮窗的打开
thread.start(function() {
    // 保持脚本运行,防止悬浮窗关闭
    while (true) {
        sleep(1000);
    }
});

// 其他线程执行任务时输出信息到控制台
thread.start(function() {
    for (let i = 0; i < 10; i++) {
        logMessage("任务进度: " + i + "%");
        sleep(1000);
    }
});
ℹ️ 本回答由 AI 生成,内容仅供参考