diff --git a/.changelog/lang_zh-Hans.json b/.changelog/lang_zh-Hans.json index f1187aaf..6a63b729 100644 --- a/.changelog/lang_zh-Hans.json +++ b/.changelog/lang_zh-Hans.json @@ -12,6 +12,7 @@ "调用不存在的方法时可能出现的 \"非原始类型值\" 异常", "部分设备无法正常添加脚本快捷方式的问题 (试修) _[`issue #221`](http://issues.autojs6.com/221)_", "automator.click/longClick 方法参数类型限制错误 _[`issue #275`](http://issues.autojs6.com/275)_", + "选择器不支持 ConsString 类型参数的问题 _[`issue #277`](http://issues.autojs6.com/277)_", "UiObjectCollection 实例缺失自身方法及属性的问题" ], "improvement": [ diff --git a/app/src/main/java/org/autojs/autojs/extension/AnyExtensions.kt b/app/src/main/java/org/autojs/autojs/extension/AnyExtensions.kt index 84822d6d..5d9bd2f2 100644 --- a/app/src/main/java/org/autojs/autojs/extension/AnyExtensions.kt +++ b/app/src/main/java/org/autojs/autojs/extension/AnyExtensions.kt @@ -11,6 +11,7 @@ import org.autojs.autojs.util.RhinoUtils.js_typeof import org.autojs.autojs.util.RhinoUtils.newNativeObject import org.autojs.autojs.util.StringUtils.str import org.autojs.autojs6.R +import org.mozilla.javascript.ConsString import org.mozilla.javascript.Context import org.mozilla.javascript.NativeError import org.mozilla.javascript.Scriptable @@ -80,11 +81,12 @@ object AnyExtensions { */ fun T?.jsSanitize() = if (this.isJsNullish()) null else this - fun Any?.jsUnwrapped() = when (this) { + fun Any?.jsUnwrapped(): Any? = when (this) { is String -> this + is ConsString -> this.toString() is Number -> Context.toNumber(this) is Boolean -> Context.toBoolean(this) - is Wrapper -> this.unwrap() + is Wrapper -> this.unwrap().jsUnwrapped() is Unit -> UNDEFINED is List<*> -> this.toNativeArray() is Array<*> -> this.toNativeArray() diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/augment/selector/Selector.kt b/app/src/main/java/org/autojs/autojs/runtime/api/augment/selector/Selector.kt index 3b55293b..3fdba3bf 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/augment/selector/Selector.kt +++ b/app/src/main/java/org/autojs/autojs/runtime/api/augment/selector/Selector.kt @@ -4,6 +4,7 @@ import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface import org.autojs.autojs.core.accessibility.UiSelector import org.autojs.autojs.core.automator.UiObject import org.autojs.autojs.extension.AnyExtensions.isJsNullish +import org.autojs.autojs.extension.AnyExtensions.jsUnwrapped import org.autojs.autojs.extension.FlexibleArray import org.autojs.autojs.extension.ScriptableExtensions.hasProp import org.autojs.autojs.extension.ScriptableExtensions.defineProp @@ -18,6 +19,7 @@ import org.autojs.autojs.util.RhinoUtils.coerceString import org.autojs.autojs.util.RhinoUtils.newBaseFunction import org.autojs.autojs.util.RhinoUtils.withRhinoContext import org.mozilla.javascript.BaseFunction +import org.mozilla.javascript.ConsString import org.mozilla.javascript.Context import org.mozilla.javascript.Scriptable import java.lang.reflect.Method @@ -110,7 +112,7 @@ class Selector(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRun private fun convertArgumentsIfNeeded(method: Method, args: Array): Array { return method.parameterTypes.mapIndexed { index, paramType -> - val arg = args[index] + val arg = args[index].jsUnwrapped() when { arg !is Double -> arg paramType == Double::class.java || paramType == java.lang.Double.TYPE -> arg diff --git a/version.properties b/version.properties index f380e4ef..5c6b4c36 100644 --- a/version.properties +++ b/version.properties @@ -1,5 +1,5 @@ -#Tue Dec 24 20:14:13 CST 2024 -BUILD_TIME=1735042453409 +#Tue Dec 24 20:40:53 CST 2024 +BUILD_TIME=1735044053799 COMPILE_SDK_VERSION=34 JAVA_VERSION=23 JAVA_VERSION_MIN_RADICAL=0