JavascriptEngine

  
讓 Android 應用程式得以評估 JavaScript。
最新版 穩定版 候選版 Beta 版 Alpha 版
2025 年 3 月 26 日 - 1.0.0-rc01 - -

宣告依附元件

如要新增 JavascriptEngine 的依附元件,您必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增所需構件的依附元件:

Groovy

dependencies {
    implementation "androidx.javascriptengine:javascriptengine:1.0.0-rc01"
}

Kotlin

dependencies {
    implementation("androidx.javascriptengine:javascriptengine:1.0.0-rc01")
}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 說明文件

1.0 版本

1.0.0-rc01 版

2025 年 3 月 26 日

發布 androidx.javascriptengine:javascriptengine:1.0.0-rc01,該版本與上一個 Beta 版沒有差別。1.0.0-rc01 版本包含這些修訂項目

1.0.0-beta01 版

2023 年 11 月 1 日

發布 androidx.javascriptengine:javascriptengine:1.0.0-beta01,該版本與上一個 Alpha 版沒有重大異動。1.0.0-beta01 版包含此連結所列的修訂項目。

1.0.0-alpha07 版本

2023 年 10 月 18 日

發布 androidx.javascriptengine:javascriptengine:1.0.0-alpha07查看 1.0.0-alpha07 版的修訂項

新功能

  • 推出新的 API,讓應用程式註冊回呼來處理 isolate 當機情形。

API 變更

  • DEFAULT_MAX_HEAP_SIZE 重新命名為 AUTOMATIC_MAX_HEAP_SIZE。(I6d303)
  • FileDescriptorIoException 重新命名為 DataInputException。(Iba4eb)。
  • DEFAULT_ISOLATE_HEAP_SIZE 重新命名為 DEFAULT_MAX_HEAP_SIZE。(Iaa16f)
  • 移除非功能性控制台 getSourcegetTrace 方法。(I4b7a2)。
  • 取消隱藏 FileDescriptorIoException (Ic44e6)
  • 允許應用程式註冊回呼,以便處理隔離的當機情形。(Iad25f)

1.0.0-alpha06 版本

2023 年 10 月 4 日

發布 androidx.javascriptengine:javascriptengine:1.0.0-alpha061.0.0-alpha06 版本包含以下修訂項目。

新功能

  • 我們推出了新的 API,可從 ParcelFileDescriptor/AssetFileDescriptor 評估 JavaScript,而無需將來源轉換為字串。JavaScriptIsolate 類別已設為執行緒安全。

API 變更

  • provideNamedData 變更為擲回例外狀況,而非傳回 false。(I8909a)
  • 新增用於透過 Afd 和 Pfd 評估 JavaScript 的 API (I03e3a)
  • MemoryLimitExceededExceptionSandboxDeadException 設為 IsolateTerminatedException 的子類別 (Icf359)
  • 移除面向公眾的 API evaluateJavaScriptAsync(@NonNull byte[] code) (I4b3ac)

修正錯誤

  • JavaScriptIsolate 執行緒安全。(Ib28e0)

1.0.0-alpha05 版本

2023 年 4 月 5 日

發布 androidx.javascriptengine:javascriptengine:1.0.0-alpha051.0.0-alpha05 版包含此連結所列的修訂項目。

API 變更

  • 評估和結果不再受 Binder 限制 (I13b1d)
  • 新增回呼,用於處理隔離主控台訊息 (I11725Ic1c11)

1.0.0-alpha04 版本

2023 年 2 月 22 日

發布 androidx.javascriptengine:javascriptengine:1.0.0-alpha04查看 1.0.0-alpha04 版的修訂項

修正錯誤

  • 修正沙箱程序失敗時導致的極少數 NullPointerException 問題。

1.0.0-alpha03 版本

2022 年 12 月 7 日

發布 androidx.javascriptengine:javascriptengine:1.0.0-alpha031.0.0-alpha03 版包含以下修訂項目。

新功能

  • 記憶體不足,停止運作回應式隔離,而非停止運作整個沙箱。一旦隔離的記憶體不足,就無法進一步評估。
  • 目前,在沙箱關閉前,隔離保留的資源都不會釋出。這種資源釋出行為在日後的程式庫版本中可能會有所變更。

API 變更

  • 在評估導致隔離記憶體不足時擲回 MemoryLimitExceededException (I336ca)。

1.0.0-alpha02 版

2022 年 10 月 5 日

發布了 androidx.javascriptengine:javascriptengine:1.0.0-alpha021.0.0-alpha02 版包含此連結所列的修訂項目。

新功能

  • 新增 JavaScriptSandbox#isSupported 以檢查系統是否支援 JavaScript 沙箱。

API 變更

  • 因缺乏系統支援而無法建立 JavaScriptSandbox 時,擲回 SandboxUnsupportedException。(I0dcd6)

1.0.0-alpha01 版

2022 年 8 月 10 日

發布 androidx.javascriptengine:javascriptengine:1.0.0-alpha011.0.0-alpha01 版包含此連結所列的修訂項目。

新功能

  • 我們為 JavaScriptSandboxJavaScriptIsolate 新增了實驗性支援,讓客戶能在安全且受限的環境中評估 JavaScript。這是開發人員一直在研發及改善的部分,因此 API 可能會有變動,恕不另行通知。

  • 請提出 JavascriptEngine 元件的功能要求並回報錯誤!