uniapp离线打包热更新失败-AndroidStudio离线打包apk后无法下载打开-热更新失败-plus.runtime.install失败

发布于:2024-08-13 ⋅ 阅读:(114) ⋅ 点赞:(0)

效果图

仅安卓

前言

1.plus.runtime.install一直fail(20240808), uni.openDocument可以打开本地apk文件
2.权限问题需小心

跑通前提

1.先确定apk地址有效,浏览器中手动下载可安装
2.确保已添加离线打包AndroidStudio的“android.permission.INSTALL_PACKAGES”权限
   参考https://uniapp.dcloud.net.cn/tutorial/app-permission-android.html
3.

核心代码

const downloadTask = uni.downloadFile({
	url: 'https://xxxx/demo.apk',
	success: (res) => {
		if (res.statusCode === 200) {
			runApk(res.tempFilePath)
		}
	}
})

downloadTask.onProgressUpdate((res) => {
	// 总大小 - 字节
	// res.totalBytesExpectedToWrite
	
	// 已下载 - 字节
	// res.totalBytesWritten

	// 进度 - 百分比 0-100
	// res.progress
})


const runApk = (local_path = '') => {
	uni.openDocument({
		filePath: local_path,
		showMenu: true,
		success: (res) =>{
			// 打开成功
		},
		fail: (e) =>{
			// 打开失败
		},
	})
}

题外话

1.plus.io.convertLocalFileSystemURL( uni.downloadFile结果.tempFilePath )获取绝对路径,

在uni.openDocument中无效 - 不执行也不报错

2.plus.io.LocalURL(*) 什么参数都不执行,也不报错

3.uniapp打包后图片偶尔缺失 - 因为电脑可用内存不够,项目编译不够内存空间,造成偶尔的static资源没法完整打包进去

plus.runtime.install 安装失败,并且失败回调的参数 error一直为null
https://ask.dcloud.net.cn/question/57909
https://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.install
https://blog.csdn.net/lzz123987csdn/article/details/136730680
加了离线打包的权限也不行 <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
https://uniapp.dcloud.net.cn/tutorial/app-permission-android.html    

// 获取应用信息 - uniapp获取manifest文件内容
// https://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.getProperty
const getAppInfo = async () => {
    // APP更新检查 > 获取应用信息
    return new Promise((resolve, reject) => {
        plus.runtime.getProperty( plus.runtime.appid, ( wgtinfo ) => {
            resolve(wgtinfo)
        })
    })
}
/**
 * APP-PLUS下载地址
 * 
 * 处理:uni.downloadFile 》 success 》 res.tempFilePath
 * 获得:_doc/uniapp_temp_172308307703610/download/expert-v1.0.2.apk
 * 
 * 处理:plus.io.convertLocalFileSystemURL(res.tempFilePath)
 * 获得:/storage/emulated/0/Android/data/com.amd.expert/apps/__UNI__78B9194/doc/uniapp_temp_172308307703610/download/expert-v1.0.2.apk
 * 参考:https://www.html5plus.org/doc/zh_cn/io.html#plus.io.convertLocalFileSystemURL
 * 
 * 处理:plus.io.LocalURL( convertLocalFileSystemURL结果 )
 * 获得:file:///storage/emulated/0/Android/data/com.amd.expert/apps/__UNI__78B9194/doc/uniapp_temp_172308307703610/download/expert-v1.0.2.apk
 * 参考:https://www.html5plus.org/doc/zh_cn/io.html#plus.io.LocalURL
 */

推荐

baidu.rudon.cn 没有广告的百度首页


网站公告

今日签到

点亮在社区的每一天
去签到