更新js库

This commit is contained in:
kunfei 2022-04-21 22:49:17 +08:00
parent 95efc4f4ec
commit 7c251e1905
13 changed files with 31 additions and 18 deletions

View File

@ -211,7 +211,8 @@ dependencies {
implementation(project(path: ':epublib')) implementation(project(path: ':epublib'))
//JS rhino //JS rhino
implementation('com.github.gedoor:rhino-android:1.8') //implementation('com.github.gedoor:rhino-android:1.8')
implementation(fileTree(dir: 'lib', include: ['*.jar', '*.aar']))
// //
implementation('com.squareup.okhttp3:okhttp:4.9.3') implementation('com.squareup.okhttp3:okhttp:4.9.3')

BIN
app/lib/rhino-1.7.13-1.jar Normal file

Binary file not shown.

View File

@ -14,6 +14,19 @@
**2022/04/21** **2022/04/21**
* 修复一些bug * 修复一些bug
* 更新js库
```
实现 ES6 Object.values Object.entries Object.fromEntries
实现 ES2017 Object.getOwnPropertyDescriptors
添加支持“catch”中的可选变量绑定
添加:反单引号里`${}`语法支持(用于字符串连接)
添加equals (==) 等号的支持
添加NativeArray.subList()
添加Object.hasOwn
修复for of导出字符串 of前无空格导致语法错误问题
其他一些优化
```
**2022/04/17** **2022/04/17**

View File

@ -3,12 +3,11 @@ package io.legado.app.constant
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.provider.Settings import android.provider.Settings
import com.script.javascript.RhinoScriptEngine
import io.legado.app.BuildConfig import io.legado.app.BuildConfig
import io.legado.app.R import io.legado.app.R
import splitties.init.appCtx import splitties.init.appCtx
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import javax.script.ScriptEngine
import javax.script.ScriptEngineManager
@SuppressLint("SimpleDateFormat") @SuppressLint("SimpleDateFormat")
object AppConst { object AppConst {
@ -23,8 +22,8 @@ object AppConst {
const val MAX_THREAD = 9 const val MAX_THREAD = 9
val SCRIPT_ENGINE: ScriptEngine by lazy { val SCRIPT_ENGINE: RhinoScriptEngine by lazy {
ScriptEngineManager().getEngineByName("rhino") RhinoScriptEngine()
} }
val timeFormat: SimpleDateFormat by lazy { val timeFormat: SimpleDateFormat by lazy {

View File

@ -1,6 +1,7 @@
package io.legado.app.data.entities package io.legado.app.data.entities
import android.util.Base64 import android.util.Base64
import com.script.SimpleBindings
import io.legado.app.constant.AppConst import io.legado.app.constant.AppConst
import io.legado.app.constant.AppLog import io.legado.app.constant.AppLog
import io.legado.app.data.entities.rule.RowUi import io.legado.app.data.entities.rule.RowUi
@ -9,7 +10,6 @@ import io.legado.app.help.JsExtensions
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.http.CookieStore import io.legado.app.help.http.CookieStore
import io.legado.app.utils.* import io.legado.app.utils.*
import javax.script.SimpleBindings
/** /**
* 可在js里调用,source.xxx() * 可在js里调用,source.xxx()

View File

@ -2,6 +2,7 @@ package io.legado.app.model.analyzeRule
import android.text.TextUtils import android.text.TextUtils
import androidx.annotation.Keep import androidx.annotation.Keep
import com.script.SimpleBindings
import io.legado.app.constant.AppConst.SCRIPT_ENGINE import io.legado.app.constant.AppConst.SCRIPT_ENGINE
import io.legado.app.constant.AppPattern.JS_PATTERN import io.legado.app.constant.AppPattern.JS_PATTERN
import io.legado.app.data.entities.* import io.legado.app.data.entities.*
@ -13,10 +14,8 @@ import io.legado.app.utils.*
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import org.jsoup.nodes.Entities import org.jsoup.nodes.Entities
import org.mozilla.javascript.NativeObject import org.mozilla.javascript.NativeObject
import java.net.URL import java.net.URL
import java.util.regex.Pattern import java.util.regex.Pattern
import javax.script.SimpleBindings
/** /**
* 解析规则获取结果 * 解析规则获取结果

View File

@ -5,6 +5,7 @@ import android.util.Base64
import androidx.annotation.Keep import androidx.annotation.Keep
import com.bumptech.glide.load.model.GlideUrl import com.bumptech.glide.load.model.GlideUrl
import com.bumptech.glide.load.model.LazyHeaders import com.bumptech.glide.load.model.LazyHeaders
import com.script.SimpleBindings
import io.legado.app.constant.AppConst.SCRIPT_ENGINE import io.legado.app.constant.AppConst.SCRIPT_ENGINE
import io.legado.app.constant.AppConst.UA_NAME import io.legado.app.constant.AppConst.UA_NAME
import io.legado.app.constant.AppPattern.JS_PATTERN import io.legado.app.constant.AppPattern.JS_PATTERN
@ -24,7 +25,6 @@ import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response import okhttp3.Response
import java.net.URLEncoder import java.net.URLEncoder
import java.util.regex.Pattern import java.util.regex.Pattern
import javax.script.SimpleBindings
/** /**
* Created by GKF on 2018/1/24. * Created by GKF on 2018/1/24.

View File

@ -2,6 +2,7 @@ package io.legado.app.model.localBook
import android.net.Uri import android.net.Uri
import androidx.documentfile.provider.DocumentFile import androidx.documentfile.provider.DocumentFile
import com.script.SimpleBindings
import io.legado.app.R import io.legado.app.R
import io.legado.app.constant.AppConst import io.legado.app.constant.AppConst
import io.legado.app.data.appDb import io.legado.app.data.appDb
@ -17,7 +18,6 @@ import java.io.FileInputStream
import java.io.FileNotFoundException import java.io.FileNotFoundException
import java.io.InputStream import java.io.InputStream
import java.util.regex.Pattern import java.util.regex.Pattern
import javax.script.SimpleBindings
object LocalBook { object LocalBook {

View File

@ -2,6 +2,7 @@ package io.legado.app.service
import android.content.Intent import android.content.Intent
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import com.script.ScriptException
import io.legado.app.R import io.legado.app.R
import io.legado.app.base.BaseService import io.legado.app.base.BaseService
import io.legado.app.constant.AppConst import io.legado.app.constant.AppConst
@ -28,7 +29,6 @@ import kotlinx.coroutines.asCoroutineDispatcher
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.mozilla.javascript.WrappedException import org.mozilla.javascript.WrappedException
import java.util.concurrent.Executors import java.util.concurrent.Executors
import javax.script.ScriptException
import kotlin.math.min import kotlin.math.min
/** /**

View File

@ -6,6 +6,7 @@ import com.google.android.exoplayer2.ExoPlayer
import com.google.android.exoplayer2.MediaItem import com.google.android.exoplayer2.MediaItem
import com.google.android.exoplayer2.PlaybackException import com.google.android.exoplayer2.PlaybackException
import com.google.android.exoplayer2.Player import com.google.android.exoplayer2.Player
import com.script.ScriptException
import io.legado.app.R import io.legado.app.R
import io.legado.app.constant.AppLog import io.legado.app.constant.AppLog
import io.legado.app.constant.AppPattern import io.legado.app.constant.AppPattern
@ -25,7 +26,6 @@ import java.io.File
import java.net.ConnectException import java.net.ConnectException
import java.net.SocketTimeoutException import java.net.SocketTimeoutException
import java.util.* import java.util.*
import javax.script.ScriptException
/** /**
* 在线朗读 * 在线朗读

View File

@ -9,6 +9,7 @@ import androidx.lifecycle.MutableLiveData
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.CustomTarget import com.bumptech.glide.request.target.CustomTarget
import com.bumptech.glide.request.transition.Transition import com.bumptech.glide.request.transition.Transition
import com.script.SimpleBindings
import io.legado.app.R import io.legado.app.R
import io.legado.app.base.BaseViewModel import io.legado.app.base.BaseViewModel
import io.legado.app.constant.AppConst import io.legado.app.constant.AppConst
@ -33,7 +34,6 @@ import java.io.File
import java.io.FileOutputStream import java.io.FileOutputStream
import java.nio.charset.Charset import java.nio.charset.Charset
import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentHashMap
import javax.script.SimpleBindings
class CacheViewModel(application: Application) : BaseViewModel(application) { class CacheViewModel(application: Application) : BaseViewModel(application) {

View File

@ -69,7 +69,7 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
return super.onCompatOptionsItemSelected(item) return super.onCompatOptionsItemSelected(item)
} }
@SuppressLint("JavascriptInterface") @SuppressLint("JavascriptInterface", "SetJavaScriptEnabled")
private fun initWebView(url: String, headerMap: HashMap<String, String>) { private fun initWebView(url: String, headerMap: HashMap<String, String>) {
binding.webView.webChromeClient = CustomWebChromeClient() binding.webView.webChromeClient = CustomWebChromeClient()
binding.webView.webViewClient = CustomWebViewClient() binding.webView.webViewClient = CustomWebViewClient()
@ -100,11 +100,11 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
} }
return@setOnLongClickListener false return@setOnLongClickListener false
} }
binding.webView.setDownloadListener { url, _, contentDisposition, _, _ -> binding.webView.setDownloadListener { downloadUrl, _, contentDisposition, _, _ ->
var fileName = URLUtil.guessFileName(url, contentDisposition, null) var fileName = URLUtil.guessFileName(downloadUrl, contentDisposition, null)
fileName = URLDecoder.decode(fileName, "UTF-8") fileName = URLDecoder.decode(fileName, "UTF-8")
binding.llView.longSnackbar(fileName, getString(R.string.action_download)) { binding.llView.longSnackbar(fileName, getString(R.string.action_download)) {
Download.start(this, url, fileName) Download.start(this, downloadUrl, fileName)
} }
} }
} }
@ -206,6 +206,7 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
return true return true
} }
@Deprecated("Deprecated in Java")
@Suppress("DEPRECATION") @Suppress("DEPRECATION")
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean { override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
url?.let { url?.let {

View File

@ -1,8 +1,8 @@
package io.legado.app.utils package io.legado.app.utils
import com.script.SimpleBindings
import io.legado.app.constant.AppConst.SCRIPT_ENGINE import io.legado.app.constant.AppConst.SCRIPT_ENGINE
import io.legado.app.constant.AppPattern.EXP_PATTERN import io.legado.app.constant.AppPattern.EXP_PATTERN
import javax.script.SimpleBindings
object JsUtils { object JsUtils {