feat: offline package version management, long-press menu
This commit is contained in:
@@ -150,7 +150,7 @@ class JsBridge(
|
||||
pushWebappProgress(id, 0)
|
||||
Thread {
|
||||
val fullUrl = resolveUrl(pkg)
|
||||
st.downloadAndExtract(id, fullUrl) { p -> pushWebappProgress(id, p) }
|
||||
st.downloadAndExtract(id, fullUrl, app.offlineVersion ?: "") { p -> pushWebappProgress(id, p) }
|
||||
val url = st.localIndexUrl(id) ?: app.url
|
||||
openWebAppAt(container, host, id, url, app.name)
|
||||
pushWebappProgress(id, 100)
|
||||
@@ -185,6 +185,36 @@ class JsBridge(
|
||||
@android.webkit.JavascriptInterface
|
||||
fun hasLocalPackage(id: String): Boolean = storage?.hasLocalPackage(id) ?: false
|
||||
|
||||
// 本地离线包版本号(无则空字符串)
|
||||
// Local offline-package version (empty string when absent)
|
||||
@android.webkit.JavascriptInterface
|
||||
fun getLocalVersion(id: String): String = storage?.getLocalVersion(id) ?: ""
|
||||
|
||||
// 删除本地离线包
|
||||
// Delete the local offline package
|
||||
@android.webkit.JavascriptInterface
|
||||
fun deleteLocalPackage(id: String) {
|
||||
Log.d("HearthBridge", "deleteLocalPackage: id=$id")
|
||||
storage?.deleteLocalPackage(id)
|
||||
}
|
||||
|
||||
// 强制更新离线包:删除本地后重新下载
|
||||
// Force-update the offline package: delete local then re-download
|
||||
@android.webkit.JavascriptInterface
|
||||
fun updateOfflinePackage(id: String) {
|
||||
Log.d("HearthBridge", "updateOfflinePackage: id=$id")
|
||||
val st = storage ?: return
|
||||
val app = manifest().firstOrNull { it.id == id } ?: return
|
||||
val pkg = app.offline ?: return
|
||||
st.deleteLocalPackage(id)
|
||||
pushWebappProgress(id, 0)
|
||||
Thread {
|
||||
val fullUrl = resolveUrl(pkg)
|
||||
st.downloadAndExtract(id, fullUrl, app.offlineVersion ?: "") { p -> pushWebappProgress(id, p) }
|
||||
pushWebappProgress(id, 100)
|
||||
}.start()
|
||||
}
|
||||
|
||||
// 推送 webapp 加载/下载进度给 H5(0-100)
|
||||
// Push webapp load/download progress to H5 (0-100)
|
||||
private fun pushWebappProgress(id: String, progress: Int) {
|
||||
|
||||
Reference in New Issue
Block a user