JavascriptEngine

  
啟用 Android 應用程式以評估 JavaScript。
最新版 穩定版 候選版 Beta 版 Alpha 版
2023 年 11 月 1 日 - - 1.0.0-beta01 -

宣告依附元件

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

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

Groovy

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

Kotlin

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

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

意見回饋

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

建立新問題

詳情請參閱 Issue Tracker 說明文件

1.0 版本

1.0.0-beta01 版本

2023 年 11 月 1 日

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

  • 1.0.0-alpha07 以來沒有變更

1.0.0-alpha07 版

2023 年 10 月 18 日

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

新功能

  • 推出新的 API,可讓應用程式註冊回呼以處理隔離當機問題。

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)。
  • 新增透過 Afds 和 Pfds 評估 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 變更

  • 評估和結果不再受到繫結機制限制 (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 元件的功能要求並回報錯誤!