diff --git a/.changelog/lang_zh-Hans.json b/.changelog/lang_zh-Hans.json index adef8464..ec590b08 100644 --- a/.changelog/lang_zh-Hans.json +++ b/.changelog/lang_zh-Hans.json @@ -12,6 +12,7 @@ "fix": [ "isJavaClass/isJavaPackage 等全局方法无效的问题", "timers.keepAlive 方法 timeout 参数功能无效的问题", + "floaty.window/rawWindow 方法无法接受字符串参数的问题", "使用 XML 语法将 JavaScript 表达式作为属性值时, this 对象可能出现指向错误的问题", "canvas 元素控件 setMaxFps 方法内部帧率计算错误", "images.concat 方法纵向拼接时宽度值计算错误", diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/augment/floaty/Floaty.kt b/app/src/main/java/org/autojs/autojs/runtime/api/augment/floaty/Floaty.kt index 590af94b..39a878b9 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/augment/floaty/Floaty.kt +++ b/app/src/main/java/org/autojs/autojs/runtime/api/augment/floaty/Floaty.kt @@ -6,6 +6,7 @@ import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface import org.autojs.autojs.core.floaty.BaseResizableFloatyWindow import org.autojs.autojs.core.ui.ViewExtras import org.autojs.autojs.extension.AnyExtensions.isJsNullish +import org.autojs.autojs.extension.AnyExtensions.isJsString import org.autojs.autojs.extension.AnyExtensions.jsBrief import org.autojs.autojs.extension.FlexibleArray import org.autojs.autojs.extension.ScriptableExtensions.defineProp @@ -93,13 +94,13 @@ class Floaty(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) { } private fun wrap(scriptRuntime: ScriptRuntime, windowFunction: (supplier: BaseResizableFloatyWindow.ViewSupplier) -> JsWindow, xml: Any?): ProxyJavaObject { - require(xml is XML) { "Argument xml ${xml.jsBrief()} is invalid for Floaty#wrap" } + require(xml is XML || xml.isJsString()) { "Argument xml ${xml.jsBrief()} is invalid for Floaty#wrap" } val storage = mutableMapOf() val layoutInflater = scriptRuntime.ui.layoutInflater val window = windowFunction(object : BaseResizableFloatyWindow.ViewSupplier { override fun inflate(context: AndroidContext, parent: ViewGroup?): View { layoutInflater.context = context - return layoutInflater.inflate(toXMLString(xml), parent, true) + return layoutInflater.inflate(toXMLString(xml!!), parent, true) } }) val getter = fun(args: Array): Any? {