From c388148b8f24404396807ffc319a84c14b8ad987 Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Wed, 12 Sep 2018 10:37:56 +0800 Subject: [PATCH] feat(autojs): engines.myEngine().execArgv --- autojs/src/main/assets/modules/__engines__.js | 21 ++++++++++++++++++- .../autojs/execution/ExecutionConfig.java | 19 +++++++++++++++-- .../execution/RunnableScriptExecution.java | 1 + .../execution/ScriptExecuteActivity.java | 1 + 4 files changed, 39 insertions(+), 3 deletions(-) diff --git a/autojs/src/main/assets/modules/__engines__.js b/autojs/src/main/assets/modules/__engines__.js index cb2a0299..ace4493b 100644 --- a/autojs/src/main/assets/modules/__engines__.js +++ b/autojs/src/main/assets/modules/__engines__.js @@ -1,6 +1,7 @@ module.exports = function(__runtime__, scope){ var rtEngines = __runtime__.engines; + var execArgv = null; var engines = {}; @@ -17,7 +18,17 @@ module.exports = function(__runtime__, scope){ } engines.myEngine = function(){ - return rtEngines.myEngine(); + var engine = Object.create(rtEngines.myEngine()); + if(!execArgv){ + execArgv = {}; + var iter = engine.getTag("execution.config").getArguments().entrySet().iterator(); + while(iter.hasNext()){ + var entry = iter.next(); + execArgv[entry.getKey()] = entry.getValue(); + } + } + engine.execArgv = execArgv; + return engine; } engines.all = function(){ @@ -44,6 +55,14 @@ module.exports = function(__runtime__, scope){ c.interval = c.interval || 0; c.loopTimes = c.loopTimes || 1; config.loop(c.delay, c.loopTimes, c.interval); + if(c.arguments){ + var arguments = c.arguments; + for(var key in arguments){ + if(arguments.hasOwnProperty(key)){ + config.setArgument(key, arguments[key]); + } + } + } return config; } diff --git a/autojs/src/main/java/com/stardust/autojs/execution/ExecutionConfig.java b/autojs/src/main/java/com/stardust/autojs/execution/ExecutionConfig.java index dc18f98f..c1f0f148 100644 --- a/autojs/src/main/java/com/stardust/autojs/execution/ExecutionConfig.java +++ b/autojs/src/main/java/com/stardust/autojs/execution/ExecutionConfig.java @@ -4,22 +4,25 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Created by Stardust on 2017/2/1. */ public class ExecutionConfig implements Serializable { + public static final String TAG = "execution.config"; private List mRequirePath = Collections.emptyList(); private String mExecutePath; - private static final ExecutionConfig DEFAULT = new ExecutionConfig(); public long delay = 0; public long interval = 0; public int loopTimes = 1; + private Map mArguments = new HashMap<>(); public static ExecutionConfig getDefault() { - return DEFAULT; + return new ExecutionConfig(); } public boolean runInNewThread = true; @@ -50,6 +53,18 @@ public class ExecutionConfig implements Serializable { return mExecutePath; } + public void setArgument(String key, Object object){ + mArguments.put(key, object); + } + + public Object getArgument(String key){ + return mArguments.get(key); + } + + public Map getArguments() { + return mArguments; + } + public ExecutionConfig loop(long delay, int loopTimes, long interval) { this.delay = delay; this.loopTimes = loopTimes; diff --git a/autojs/src/main/java/com/stardust/autojs/execution/RunnableScriptExecution.java b/autojs/src/main/java/com/stardust/autojs/execution/RunnableScriptExecution.java index 10e7b4b7..5073803b 100644 --- a/autojs/src/main/java/com/stardust/autojs/execution/RunnableScriptExecution.java +++ b/autojs/src/main/java/com/stardust/autojs/execution/RunnableScriptExecution.java @@ -29,6 +29,7 @@ public class RunnableScriptExecution extends ScriptExecution.AbstractScriptExecu public Object execute() { mScriptEngine = mScriptEngineManager.createEngineOfSourceOrThrow(getSource(), getId()); + mScriptEngine.setTag(ExecutionConfig.TAG, getConfig()); return execute(mScriptEngine); } diff --git a/autojs/src/main/java/com/stardust/autojs/execution/ScriptExecuteActivity.java b/autojs/src/main/java/com/stardust/autojs/execution/ScriptExecuteActivity.java index 3d742ae4..6dcb614a 100644 --- a/autojs/src/main/java/com/stardust/autojs/execution/ScriptExecuteActivity.java +++ b/autojs/src/main/java/com/stardust/autojs/execution/ScriptExecuteActivity.java @@ -252,6 +252,7 @@ public class ScriptExecuteActivity extends AppCompatActivity { mScriptEngine.forceStop(); } mScriptEngine = mScriptEngineManager.createEngineOfSourceOrThrow(getSource()); + mScriptEngine.setTag(ExecutionConfig.TAG, getConfig()); return mScriptEngine; }