From 5006433437cd0a0c2abc34956213d5d224bb7214 Mon Sep 17 00:00:00 2001 From: kunfei Date: Mon, 10 Apr 2023 20:54:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=BA=90=E6=B7=BB=E5=8A=A0jsLib,=E6=9C=AA?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/model/SharedJsScope.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/SharedJsScope.kt b/app/src/main/java/io/legado/app/model/SharedJsScope.kt index 6326c78af..e3f3d0ac4 100644 --- a/app/src/main/java/io/legado/app/model/SharedJsScope.kt +++ b/app/src/main/java/io/legado/app/model/SharedJsScope.kt @@ -1,5 +1,8 @@ package io.legado.app.model +import com.script.SimpleBindings +import io.legado.app.constant.SCRIPT_ENGINE +import io.legado.app.help.rhino.RhinoScriptEngine import io.legado.app.utils.MD5Utils import org.mozilla.javascript.Scriptable import java.lang.ref.WeakReference @@ -8,12 +11,18 @@ object SharedJsScope { private val scopeMap = hashMapOf>() - fun getScope(jsLib: String) { + fun getScope(jsLib: String): Scriptable { val key = MD5Utils.md5Encode(jsLib) var scope = scopeMap[key]?.get() if (scope == null) { - + val context = SCRIPT_ENGINE.getScriptContext(SimpleBindings()) + scope = SCRIPT_ENGINE.getRuntimeScope(context) + RhinoScriptEngine.run { + it.evaluateString(scope, jsLib, "jsLib", 1, null) + } + scopeMap[key] = WeakReference(scope) } + return scope } } \ No newline at end of file