From 417836eeaef83b09db74136ac236e9ec8ed98c39 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Thu, 31 Mar 2022 13:59:52 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9AimportScript=E7=9B=B8=E5=AF=B9?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/help/JsExtensions.kt | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/JsExtensions.kt b/app/src/main/java/io/legado/app/help/JsExtensions.kt index 28ad60458..7a6662d68 100644 --- a/app/src/main/java/io/legado/app/help/JsExtensions.kt +++ b/app/src/main/java/io/legado/app/help/JsExtensions.kt @@ -133,26 +133,25 @@ interface JsExtensions { * 可从网络,本地文件(阅读私有缓存目录和书籍保存位置支持相对路径)导入JavaScript脚本 */ fun importScript(path: String): String { - var result: String = "" - when { - path.startsWith("http") -> result = cacheFile(path) ?: "" - path.isContentScheme() -> result = DocumentUtils.readText(appCtx, Uri.parse(path)) - path.startsWith("/storage") -> result = FileUtils.readText(path) + val result = when { + path.startsWith("http") -> cacheFile(path) ?: "" + path.isContentScheme() -> DocumentUtils.readText(appCtx, Uri.parse(path)) + path.startsWith("/storage") -> FileUtils.readText(path) else -> { + //相对路径 + val jsPath = if (path.startsWith("/")) path else "/" + path //先找书籍保存目录下有没有 val publicStoragePath = AppConfig.defaultBookTreeUri val jsString = publicStoragePath?.let { - val jsPath = if (path.startsWith("/")) path else "/" + path - val filePathString = it + jsPath - val fileUri = Uri.parse(filePathString) - if (fileUri.isContentScheme()) { + if (it.isContentScheme()) { + val fileUri = Uri.parse(it + URLEncoder.encode(jsPath, "UTF-8")) DocumentUtils.readText(appCtx, fileUri) } else { - FileUtils.readText(fileUri.path!!) + FileUtils.readText(it + jsPath) } } //私有目录 - result = if (jsString.isNullOrBlank()) readTxtFile(path) else jsString + if (jsString.isNullOrBlank()) readTxtFile(path) else jsString } } if (result.isBlank()) throw NoStackTraceException("${path} 内容获取失败或者为空")