省流量更新
Unity3D
概述
接入向导
检查应用宝是否安装
检查是否有更新
开始省流量更新
常见问题
Android
概述
接入向导
检查应用宝是否安装
检查是否有更新
开始省流量更新
常见问题
其他
数据结构
系统工具
省流量更新 / Unity3D / 概述

概述

MSDK与应用宝团队一起为游戏提供省流量更新的功能;用户可以通过下载差量更新包来更新游戏包从而达到节省用户流量的目的。

接入向导

MSDK 3.3.30u 版本开始删除应用宝省流量 SDK 组件

配置变化

Deploy 面板上的 SAVE_UPDATE 不勾选

1 接入配置

1)游戏已经按msdk unity接入配置模块说明完成

2)确保省流量更新配置开关SAVE_UPDATE被勾选,参考接入配置Step3 配置信息

2 接入流程

使用应用宝省流量更新流程图:

3 参考Demo示例

示例参考 Assets\Example\MsdkDemo.cs 脚本的 ShowOthers() 方法。

检查应用宝是否安装

1 概要说明

您可以调用 WGCheckYYBInstalled() 接口检查应用宝是否安装并给出相应的提示;该检查不是必须的,如果用户没有安装应用宝更新前会自动先下载应用宝

2 注册回调

3 接口调用

1)功能描述

您可以调用 WGCheckYYBInstalled() 接口检查应用宝是否安装并给出相应的提示;该检查不是必须的,如果用户没有安装应用宝更新前会自动先下载应用宝

2)接口声明
int WGCheckYYBInstalled();
3)参数说明

4)返回值

int类型

0:表示应用宝已安装
1:表示应用宝未安装
其他值表示安装了低版本的应用宝
5)示例代码
int ret = WGPlatform.Instance.WGCheckYYBInstalled();
switch (ret)
{
    case 0: // 游戏TODO 应用宝已安装
        break;
    case 1: // 游戏TODO 应用宝未安装
        break;
    default: // 游戏TODO 安装了低版本的应用宝
        break;
}
6)特殊说明

7)名称解释

检查是否有更新

1 概要说明

查询当前应用是否有更新

2 注册回调

1)功能描述

检查游戏更新的回调,游戏需要注册回调函数进行处理,建议在游戏的Awake函数中进行注册

2)接口声明
public delegate void CheckUpdateDelegate(long newApkSize, string newFeature, 
        long patchSize, int status, string updateDownloadUrl, int updateMethod);
3)参数说明
参数名称 类型 说明
newApkSize long 新apk包的文件大小
newFeature string 新版本描述
patchSize long 省流量更新包的文件大小
status int 检查结果
TMSelfUpdateUpdateInfo.STATUS_OK : 成功
TMSelfUpdateUpdateInfo.STATUS_CHECKUPDATE_FAILURE : 失败
TMSelfUpdateUpdateInfo.STATUS_CHECKUPDATE_RESPONSE_IS_NULL : 响应为空
updateDownloadUrl string 下载地址
updateMethod int 更新方式
TMSelfUpdateUpdateInfo.UpdateMethod_NoUpdate : 无更新包
TMSelfUpdateUpdateInfo.UpdateMethod_Normal : 全量更新包
TMSelfUpdateUpdateInfo.UpdateMethod_ByPatch : 增量更新包
4)返回值

5)示例代码
MsdkEvent.Instance.CheckUpdateEvent += (long newApkSize, string newFeature, 
        long patchSize, int status, string updateDownloadUrl, int updateMethod) => {
    if (status == TMSelfUpdateUpdateInfo.STATUS_OK) { //查询成功
        if (updateMethod == TMSelfUpdateUpdateInfo.UpdateMethod_NoUpdate)  {
            // 游戏TODO 无更新包
        } else if (updateMethod == TMSelfUpdateUpdateInfo.UpdateMethod_Normal) {
            // 游戏TODO 可进行全量更新
        } else if (updateMethod == TMSelfUpdateUpdateInfo.UpdateMethod_ByPatch) {
            // 游戏TODO 可进行增量更新
        }
    } else {
        // 游戏TODO 查询失败
    }
};
6)特殊说明

7)名称解释

3 接口调用

1)功能描述

调用 WGCheckNeedUpdate() 接口可以查询当前应用是否有更新。

2)接口声明
void WGCheckNeedUpdate();
3)参数说明

4)返回值

无,通过 CheckUpdateEvent 回调,回调设置参考 检查游戏更新的回调

5)示例代码
WGPlatform.Instance.WGCheckNeedUpdate();
6)特殊说明

7)名词解释

开始省流量更新

1 概要说明

调用 WGStartSaveUpdate() 接口可以开始省流量更新

2 注册回调

1 注册游戏更新包下载进度的回调

1)功能描述

游戏更新包下载进度的回调,游戏需要注册回调函数进行处理,建议在游戏的Awake函数中进行注册

2)接口声明
public delegate void DownloadAppProgressDelegate(long receiveDataLen, long totalDataLen);
3)参数说明
测试名称 类型 说明
receiveDataLen long 已下载的数据大小
totalDataLen long 全部的数据大小
4)返回值

5)示例代码
MsdkEvent.Instance.DownloadAppProgressEvent += (long receiveDataLen, long totalDataLen) => {
        long progress = receiveDataLen * 100 / totalDataLen;
        // 游戏TODO 下载中,已完成 " + progress + "%";
};
6)特殊说明

7)名称解释

2注册游戏更新包下载状态改变的回调

1)功能描述

游戏更新包下载状态改变的回调,游戏需要注册回调函数进行处理,建议在游戏的Awake函数中进行注册

2)接口声明
public delegate void DownloadAppStateDelegate(int state, int errorCode, string errorMsg);
3)参数说明
测试名称 类型 说明
state int 状态:
TMAssistantDownloadTaskState.DownloadSDKTaskState_WAITING = 1;
TMAssistantDownloadTaskState.DownloadSDKTaskState_DOWNLOADING = 2;
TMAssistantDownloadTaskState.DownloadSDKTaskState_PAUSED = 3;
TMAssistantDownloadTaskState.DownloadSDKTaskState_SUCCEED = 4;
TMAssistantDownloadTaskState.DownloadSDKTaskState_FAILED = 5;
TMAssistantDownloadTaskState.DownloadSDKTaskState_DELETE = 6;
errorCode int 错误码
errorMsg string 错误信息
4)返回值

5)示例代码
MsdkEvent.Instance.DownloadAppStateEvent += (int state, int errorCode, string errorMsg) => {
    if (state == TMAssistantDownloadTaskState.DownloadSDKTaskState_SUCCEED) {
        // 游戏TODO 下载完成
    } else {
        // 游戏TODO 下载失败
    }
};
6)特殊说明

7)名称解释

3 注册应用宝下载进度的回调

1)功能描述

应用宝下载进度的回调,游戏需要注册回调函数进行处理,建议在游戏的Awake函数中进行注册

2)接口声明
public delegate void DownloadYYBProgressDelegate(string url, long receiveDataLen, long totalDataLen);
3)参数说明
测试名称 类型 说明
url string 下载地址
receiveDataLen long 已下载的数据大小
totalDataLen long 要下载的数据大小
4)返回值

5)示例代码
MsdkEvent.Instance.DownloadYYBProgressEvent += (string url, long receiveDataLen, long totalDataLen) => {
    Debug.Log("Download YYB url is " + url);
    long progress = receiveDataLen * 100 / totalDataLen;
    // 游戏TODO 下载中,已完成 " + progress + "%";
};
6)特殊说明

7)名称解释

4 注册应用宝下载状态的回调

1)功能描述

应用宝下载状态的回调,游戏需要注册回调函数进行处理,建议在游戏的Awake函数中进行注册

2)接口声明
public delegate void DownloadYYBStateDelegate(string url, int state, int errorCode, string errorMsg);
3)参数说明
参数名称 类型 说明
url string 下载地址
state int 状态:
TMSelfUpdateTaskState.SelfUpdateSDKTaskState_SUCCESS = 0;
TMSelfUpdateTaskState.SelfUpdateSDKTaskState_DOWNLOADING = 1;
TMSelfUpdateTaskState.SelfUpdateSDKTaskState_FAILURE = 2;
errorCode int 错误码
errorMsg string 错误信息
4)返回值

5)示例代码
MsdkEvent.Instance.DownloadYYBStateEvent += (string url, int state, int errorCode, string errorMsg) => {
    Debug.Log("Download YYB url is " + url);
    if (state == TMSelfUpdateTaskState.SelfUpdateSDKTaskState_SUCCESS) {
        // 游戏TODO 下载完成
    } else {
        // 游戏TODO 下载失败
    }
};
6)特殊说明

7)名称解释

3 接口调用

1)功能描述

调用 WGStartSaveUpdate() 接口可以开始省流量更新。如果手机上没有安装应用宝则此接口会自动下载应用宝, 并通过DownloadYYBProgressEvent和DownloadYYBStateEvent两个接口分别回调。如果手机上已经安装应用宝则此接口会根据参数选择是否拉起应用宝下载。下载进度和状态变化会通过DownloadAppProgressEvent和DownloadAppStateEvent回调给游戏。

2)接口声明
void WGStartSaveUpdate(bool isUseYYB);
3)参数说明
参数名称 类型 说明
isUseYYB bool 是否拉起应用宝更新游戏,如果选否,会直接在游戏内完成更新
4)返回值

无,下载进度和状态变化会通过DownloadAppProgressEvent和DownloadAppStateEvent回调给游戏

5)示例代码
WGPlatform.Instance.WGStartSaveUpdate(true);
6)特殊说明

如果手机上没有安装应用宝则此接口会自动下载应用宝, 并通过OnDownloadYYBProgressChanged和OnDownloadYYBStateChanged两个接口分别回调

7)名词解释

常见问题