更新记录

0.10.(2020-07-03)

初始提交


云函数类插件通用教程

  1. 使用云函数类插件的前提是:使用HBuilderX 2.7+;已通过实名认证并开通了uniCloud。
  2. 如果下载的是完整项目,则需要在manifest.json的可视化界面获取appid。
  3. 需要对cloudfunctions目录点右键,绑定服务空间。如无服务空间,需先创建。建议在测试服务空间体验插件,避免对现网项目产生影响。
  4. 对cloudfunctions目录点右键上传所有云函数。在HBuilderX 2.7.8以前,如有common目录,还需单独对每个common目录下的公共模块上传。
  5. 如果cloudfunctions目录下有db_init.json,请点击右键,初始化云数据库。
  6. 通过以上步骤,完成uniCloud服务空间的初始化和云函数部署。然后就可以在HBuilderX的运行菜单里运行该项目,体验云端一体完整流程。

这是App升级检查的云函数实现示例,可用于开启uniClouduni-app项目,也可以用于传统的mui5+ App项目。

使用说明:

  1. 使用HBuilderX导入本插件到本地uniCloud项目中
  2. 上传云函数到自己的服务空间
  3. 修改db_init.js文件,修改appid及当前版本号,在db_init.json上右键初始化数据,更多用法参考db_init.json规范,初始数据示例如下:
    {
    "uni-app-version": {
    "data": [{
      "_id":"bb83ad495efdddf9002e88e750d7049d",
      "appid": "__UNI__HelloUniApp",
      "name": "Hello uniapp",
      "android": {
        "note": "接入uni统计\n解决微信自定义组件运行失败的Bug",
        "title": "Hello uni-app更新",
        "url": "http://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/HelloUniApp@v2.2.3.apk",
        "version": "2.2.3"
      },
      "ios": {
        "note": "增加权限判断\n实例首页重构为 nvue,提升渲染速度",
        "title": "Hello uni-app更新",
        "url": "https://itunes.apple.com/cn/app/hello-uni-app/id1417078253?mt=8",
        "version": "1.3.4"
      }
    }]
    }
    }
  4. 在开通uniCloud服务的前端项目中,调用检查更新,代码示例如下:
uniCloud.callFunction({
  name: 'chb-check-update',
  data: {
    appid: plus.runtime.appid
    version: plus.runtime.version
  },
  success(e) {
    if (e.result.isUpdate) {//需要更新
      // 提醒用户更新
      uni.showModal({
        title: '更新提示',
        content: e.result.note ? e.result.note : '是否选择更新',
        success: (ee) => {
          if (ee.confirm) {
            plus.runtime.openURL(e.result.url);
          }
        }
      })
    }
  }
})
  1. 如果是5+ 或wap2app 项目,也可以通过云函数URL化实现App端的更新检查,客户端的调用代码如下:
//升级检查的服务器地址,可在uniCloud后台编辑查看
var server = "https://chb-tcb-01-51c845.service.tcloudbase.com/update"

function update() {
    mui.getJSON(server, {
        "appid": plus.runtime.appid,
        "version": plus.runtime.version
    }, function(data) {
        if (data.isUpdate) {
            plus.nativeUI.confirm(data.note, function(event) {
                if (0 == event.index) {
                    plus.runtime.openURL(data.url);
                }
            }, data.title, ["立即更新", "取  消"]);
        }
    });
}

mui.os.plus && !mui.os.stream && mui.plusReady(update);

隐私、权限声明

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

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

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

许可协议

MIT协议

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