|
@@ -0,0 +1,57 @@
|
|
|
+export function downloadApkWithJsonPost(apiUrl, requestData) {
|
|
|
+ fetch(apiUrl, {
|
|
|
+ method: "POST",
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "application/json",
|
|
|
+ },
|
|
|
+ body: JSON.stringify(requestData),
|
|
|
+ })
|
|
|
+ .then((response) => {
|
|
|
+ if (!response.ok) throw new Error("下载失败");
|
|
|
+ return response.blob(); // 获取二进制 APK 文件
|
|
|
+ })
|
|
|
+ .then((blob) => {
|
|
|
+ saveBlobToFile(blob); // 保存到本地
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ plus.nativeUI.alert("更新失败:" + err.message);
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+function saveBlobToFile(blob) {
|
|
|
+ const apkPath = "_doc/update/app.apk";
|
|
|
+
|
|
|
+ plus.io.resolveLocalFileSystemURL("_doc/", function (dirEntry) {
|
|
|
+ dirEntry.getDirectory("update", { create: true }, function (updateDir) {
|
|
|
+ updateDir.getFile("app.apk", { create: true }, function (fileEntry) {
|
|
|
+ fileEntry.createWriter(function (writer) {
|
|
|
+ writer.onwrite = function () {
|
|
|
+ console.log("文件保存成功");
|
|
|
+ installApk(fileEntry.toLocalURL());
|
|
|
+ };
|
|
|
+ writer.onerror = function (e) {
|
|
|
+ plus.nativeUI.alert("保存文件失败:" + e.message);
|
|
|
+ };
|
|
|
+ writer.write(blob);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+function installApk(filepath) {
|
|
|
+ plus.runtime.install(
|
|
|
+ filepath,
|
|
|
+ {
|
|
|
+ force: true,
|
|
|
+ },
|
|
|
+ function () {
|
|
|
+ plus.nativeUI.alert("更新完成,应用即将重启", function () {
|
|
|
+ plus.runtime.restart();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ function (e) {
|
|
|
+ plus.nativeUI.alert("安装失败:" + JSON.stringify(e));
|
|
|
+ }
|
|
|
+ );
|
|
|
+}
|