更新记录

1.0(2020-10-24)

1、首次发布


平台兼容性

阿里云 腾讯云 支付宝小程序云
×

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


插件说明

1、本插件适用于APP资源热更新,暂不支持整包更新

2、本插件使用了云函数、云数据库和云存储,建议提前开通相关功能

3、本插件目前只在阿里云服务商测试

4、本插件测试HBuilder版本:2.9.3,低于此版本的暂未进行测试

5、本插件使用的相关技术,请在官网提前了解(如果你想修改源码)

6、本插件适用于开启了uniCloud的uni-app项目,其他项目暂未进行测试

7、相关文档请参考官方文档

初始化说明

1、使用HBuilderX导入本插件到本地uniCloud项目中

2、如果你的项目是uni-app项目,右键项目,创建uniCloud云开发环境

3、上传云函数到自己的服务空间,并导入到本地uni-app项目中

4、修改 "db_init.json" 文件,根据自己项目,修改 "appid","version","wgt_url","apk_url" 为整包更新下载地址,暂时保留

5、如果没有 "db_init.json" 文件,右键云服务目录,创建 "db_init.json" 文件,编写完成后右键此文件,初始化云数据库

6、不建议在文件中添加 "id" 字段,否则无法初始化云数据库

# 在本文件中可配置云数据库初始化,数据格式见:https://uniapp.dcloud.io/uniCloud/cf-database?id=db_init
# 编写完毕后对本文件点右键,可按配置规则创建表和添加数据
{
"huarui-app-version": {
    "data": [{
        "appid": "__UNI__A2CD12",
        "name": "app",
        "version": "0.20",
        "note": "更新日志",
        "android": {
            "wgt_url": "https://vkceyugu.cdn.bspapp.com/VKCEYUGU-aliyun-mo06a5bb0-15bf-11eb-9dfb-6da8e309e0d8.wgt",
            "apk_url": ""
        },
        "ios": {
            "wgt_url": "https://vkceyugu.cdn.bspapp.com/VKCEYUGU-aliyun-mo06a5bb0-15bf-11eb-9dfb-6da8e309e0d8.wgt",
            "apk_url": ""
        }
    }]
}
}

7、在APP前端项目中调用检查更新,代码如下,我是在APP运行就进行检查,可以根据自己的需求,注意,如果是在APP中运行此段代码,必须加条件编译

onLaunch: function() {
    // #ifdef APP-PLUS
    plus.runtime.getProperty(plus.runtime.appid, function(info) {
        uniCloud.callFunction({ //连接云函数
            name: 'version-update', //云函数名
            data: { //传递的参数
                appid: info.appid,
                version: info.version
            },
            success: (res) => { //请求成功
                if (res.result.isUpdate) { //需要更新 
                    uni.showModal({
                        title: '更新提示',
                        content: '请选择是否需要更新',
                        success: (r) => {
                            if (r.confirm) {
                                uni.downloadFile({ //下载更新文件
                                    url: res.result.url,
                                    success: (down) => {
                                        plus.runtime.install(down.tempFilePath, { //安装更新文件
                                            force: false //是否强制安装
                                        }, function() { //安装成功
                                            uni.showToast({
                                                title: '更新成功',
                                                icon: 'success',
                                            })
                                            plus.runtime.restart() //重启
                                            uni.hideToast()
                                        }, function() { //更新失败的操作
                                            uni.showToast({
                                                title: '更新失败',
                                            })
                                            uni.hideToast()
                                        })
                                    }
                                })
                            }
                        }
                    })
                }
            }
        })
    })
    uni.hideLoading()
    // #endif
}

使用说明

1、代码编写、修改完成后,修改 "manifest.json" 的版本号

2、制作wgt升级包,在发行下选择制作应用wgt包

3、将wgt包上传到云储存或者自己的服务器

4、修改 "db_init.json" 文件 的 "version"、"wgt_url" 字段的值,然后右键此文件初始化云数据库

5、然后就可以在手机上运行APP进行热更新了

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问