返回

零基础小白也能学会:UniApp App 内部分发实现方案

前端

UniApp App 内部分发指南:轻松掌控你的应用更新

什么是内部分发?

内部分发是指将 App 更新直接分发给用户,而无需通过应用市场。这使开发者能够绕过应用市场的限制,快速发布更新并实现对更新流程的完全控制。

为什么选择内部分发?

  • 快速更新: 内部分发可显著加快更新速度,无需等待应用市场审核。
  • 灵活控制: 开发者可以完全控制更新发布时间和分发方式。
  • 个性化体验: 通过内部分发,开发者可以针对不同用户群体提供个性化更新。
  • 降低成本: 内部分发无需支付应用市场费用,从而节省成本。

UniApp 内部下载更新实现

前提条件:

  • UniApp IDE
  • 服务器空间

步骤:

  1. 创建 UniApp 项目

    • 打开 UniApp IDE,新建一个空白项目。
  2. 添加内部下载更新功能

    • manifest.json 文件中添加以下代码:
    {
      "uniCloud": {
        "enableCloudFunctions": false,
        "enableEndpointProxy": false
      },
      "mp-weixin": {
        "updateMiniprogramApp": true
      }
    }
    
  3. 构建应用

    • 点击 IDE 工具栏上的“构建”按钮,选择“发行版”和目标平台。
  4. 上传应用到服务器

    • 将构建好的应用上传到自己的服务器。
  5. 配置应用分发地址

    • manifest.json 文件中添加以下代码:
    {
      "update": {
        "url": "你的服务器地址/download/update.json"
      }
    }
    

测试应用

  • 在手机上安装应用。
  • 通过服务器地址下载更新。

代码示例

<template>
  <view>
    <button @click="checkUpdate">检查更新</button>
  </view>
</template>

<script>
import uniCloud from '@dcloudio/uni-cloud'

export default {
  methods: {
    checkUpdate() {
      uniCloud.checkUpdate({
        success: (res) => {
          if (res.hasUpdate) {
            uniCloud.downloadUpdate({
              success: () => {
                uni.showToast({
                  title: '更新成功',
                  icon: 'success'
                })
              },
              fail: (err) => {
                uni.showToast({
                  title: '更新失败',
                  icon: 'error'
                })
              }
            })
          } else {
            uni.showToast({
              title: '已经是最新版本',
              icon: 'none'
            })
          }
        },
        fail: (err) => {
          uni.showToast({
            title: '检查更新失败',
            icon: 'error'
          })
        }
      })
    }
  }
}
</script>

常见问题解答

1. 如何自定义更新提示?

  • manifest.json 文件中添加以下代码:
{
  "update": {
    "updateTips": "有新版本啦,快来更新吧!"
  }
}

2. 如何强制用户更新?

  • manifest.json 文件中添加以下代码:
{
  "update": {
    "forceUpdate": true
  }
}

3. 如何更新应用图标?

  • 在服务器上更新 icon.png 文件。
  • manifest.json 文件中添加以下代码:
{
  "app": {
    "icon": "https://你的服务器地址/icon.png"
  }
}

4. 如何修复更新失败的问题?

  • 检查服务器上的更新文件是否正确上传。
  • 检查服务器地址是否正确配置。
  • 检查手机网络是否稳定。

5. 如何禁用内部分发?

  • manifest.json 文件中删除 update 字段。
  • mp-weixin 字段中将 updateMiniprogramApp 设置为 false