API 描述

UpdateSetting

// 是否下载,默认为true
public boolean isDownload = true;
// 是否忽略检查更新频率限制,默认为false
public boolean ignoreFreqLimit = false;
// 是否仅wifi下下载,默认为false
public boolean downloadOnlyInWiFi = false;
// 是否来推送触发的检查更新,开发者无需关心,默认fasle即可
public boolean fromPush = false;
// 是否忽略延迟检查更新,默认为true。自动检查离线包更新时为false,延迟5秒触发检查更新,避免下载流程影响正常加载体验。
public boolean ignoreDelay = true;
// 检查到更新先删除本地缓存,然后再下载最新离线包。默认为false
public boolean deleteOldBizBeforeDownload = false

UpdateEntity

//全量更新
public static final int E_UPDATE_TYPE_NORMAL = 1;
//增量更新
public static final int E_UPDATE_TYPE_INCR = 2;
//主包
public static final int E_PKG_TYPE_MAIN = 0;
//公共包
public static final int E_PKG_TYPE_COMMON = 1;
//离线包字符串id
public String bid = "";
//离线包版本
public int version = 0;
//更新类型 EUpdateType
public int updateType = 0;
//离线包类型 EPkgType
public int pkgType = 0;

ProgressEntity

//离线包Id
public String bid;
//下载进度(0~100)
public int progress;
//文件总大小(字节)
public long totalBytes;

DownloadInfo

//参考{@link com.tencent.tmf.weboffline.api.OfflineManager}
public int code;
//离线包id
public String bid;
//错误信息
private String message;

OfflinePkg

//离线包id
private String bid;
//离线包检查更新的目标版本
private int targetVersion;

TMFWebResourceResponse

//返回WebResourceResponse
private WebResourceResponse resourceResponse;
//本地资源路径
private String path;

OfflineConfig

/**
* 是否检查到有新包就把旧包删掉,而不是下载到新包之后才替换(可选)
* 默认为true,行方担心下载时间比较长,要求一检查到有新包就把旧包删掉
*/
public boolean deleteOldBizBeforeDownload;

/**
* 是否开启fallback(可选)
*/
public boolean fallbackEnable;

/**
* 是否存在SD卡(可选)
*/
public boolean storeInSDCard;

/**
* 是否为快校验模式(可选)
* 快校验:整包md5校验
* 非快校验:签名校验和所有文件sha1校验
*/
public boolean quickVerify;

/**
* 线程池(可选)
*/
public ExecutorService threadPool;

/**
* 用户自定义公钥(必选)
*/
private String publickKey;

/**
* 调用loadUrlAysn方法时,是否检查更新,默认为true(可选)
*/
private boolean isCheckUpdateOnLoadUrl;
/**
 * 收到push时下载方式
 */
private int downloadModeOnPush;
/**
 * 协议类型{@link com.tencent.tmf.weboffline.api.entitiy.ProtocalType}
 */
private int protocalType;

DefaultUpdateInfoListener

/**
* 接收到离线包推送时忽略
*/
public static final int DOWNLOAD_IGNORE_ON_PUSH = 1;
/**
* 接收到离线包推送时立刻下载离线包
*/
public static final int DOWNLOAD_RIGHTNOW_ON_PUSH = 2;
/**
* 接收到离线包推送时WIFI环境下才下载离线包
*/
public static final int DOWNLOAD_ONLY_WIFI_ON_PUSH = 3;

/**
* @param context
* @param downloadMode 下载方式
*/
public DefaultUpdateInfoListener(Context context, int downloadMode)

IOfflineUpdateCallback

/**
 * 检查更新回调
 * @param code 参考{@link com.tencent.tmf.weboffline.api.OfflineManager}
 * @param updateInfos 更新信息
 */
void update(final int code, final List<UpdateEntity> updateInfos);

/**
 * 下载进度
 * @param progressInfo
 */
void downloadProgress(ProgressEntity progressInfo);

/**
 * 下载回调
 * @param downloadInfo
 * @param
 */
void downloadFinish(DownloadInfo downloadInfo);

AbsLoadUrlCallback

/**
 * 返回离线包加载url
 */
public abstract void onFinish(String url);

OfflineManager

// 定义更新回调错误码:0成功,1参数出错,2下载更新包出错,3没有sd卡,4其他错误
// 短时间内更新过
public static final int CHECK_CODE_IGNORE_HAD_UPDATE_IN_A_SHORT_TIME = 5;
// 暂无更新(已是最新)
public static final int CHECK_CODE_SUCC_NO_UPDATE = 8;
// 检查更新完成,有更新包
public static final int CHECK_CODE_SUCC_CAN_UPDATE = 10;
// 只在WiFi下更新,当前不是WiFi网络
public static final int CHECK_CODE_ERR_NOT_WIFI = 2;
// 参数错误
public static final int CHECK_CODE_ERR_PARAM = 1;
// 检查更新结果解析出错
public static final int CHECK_CODE_ERR_RESP_NULL = 11;
// 检查更新结果解析出错
public static final int CHECK_CODE_ERR_RESP_PARSE_ERROR = 12;
// 检查更新结果中r字段不为0
public static final int CHECK_CODE_ERR_RESP_RET_ERROR = 13;
// 检查更新结果中没有下载链接
public static final int CHECK_CODE_ERR_RESP_NO_URL = 14;
// URL中没有_bid参数,无法获取离线包id
public static final int CHECK_CODE_ERR_URL_WITHOUT_BID = 15;
// 网络通道的错误
public static final int CHECK_CODE_ERR_NETWORK_CHANNEL_ERROR = 16;
// 检查更新结果中单个bid的r字段不为0
public static final int CHECK_CODE_ERR_RESP_SUBRET_ERROR = 17;
// 本地已存在
public static final int CHECK_CODE_LOCAL_EXIST = 18;

// 下载离线包的错误码
// 下载离线包成功
public static final int DOWNLOAD_CODE_SUCCESS = 0;
// 内层zip解压出错
public static final int DOWNLOAD_CODE_ERROR_UNPACK = 1;
// 下载后合并差分包出错
public static final int DOWNLOAD_CODE_ERROR_PATCH = 2;
// 下载后解密出错
public static final int DOWNLOAD_CODE_ERROR_DECRYPT = 3;
// 外层zip解压出错
public static final int DOWNLOAD_CODE_ERROR_OUTER_UNPACK = 4;
// 签名或sha-1校验失败
public static final int DOWNLOAD_CODE_ERROR_S_FAIL = 5;
// 整包md5校验失败
public static final int DOWNLOAD_CODE_ERROR_FULL_PACKAGE_CHECK_FAIL = 6;
// 重复下载差分包
public static final int DOWNLOAD_CODE_ERROR_PATCH_DUPLICATE = 7;
// cannot get download filePath
public static final int DOWNLOAD_CODE_ERROR_FILE_PATH = 8;
// 离线包解析异常
public static final int DOWNLOAD_CODE_OFFLINE_PACKAGE_PARSE = 9;
//下载IOEXCEPTION和IllegalAccessException异常
public static final int CODE_DOWNLOAD_IOEXCEPTION = -100000;
//下载EXCEPTION异常
public static final int CODE_DOWNLOAD_EXCEPTION = -100001;
//下载取消
public static final int CODE_DOWNLOAD_CANCEL = -100002;
//没有网
public static final int CODE_NO_NETWORK = -100003;
//下载参数错误
public static final int CODE_PARAM_ERROR = -100004;
//下载目录创建失败
public static final int CODE_DOWNLOAD_DIR_CREATE_FAIL = -100005;

/**
 * 使用默认配置初始化
 *
 * @param context
 */
public static void init(Context context)

/**
 * 初始化
 *
 * @param context
 * @param config
 */
public static void init(Context context, OfflineConfig config)

/**
 * 检查所有最新离线包的更新
 *
 * @param updateSetting
 * @param callback
 */
public void checkAllUpdate(UpdateSetting updateSetting, final IOfflineUpdateCallback callback);

/**
 * 检查最新离线包的更新
 *
 * @param bids 离线包id列表
 * @param updateSetting 更新设置
 * @param callback 回调
 */
public void checkLatestUpdate(final List<String> bids, UpdateSetting updateSetting,
final IOfflineUpdateCallback callback)

/**
 * 检查最新离线包的更新
 *
 * @param bid 离线包id
 * @param updateSetting 更新设置
 * @param callback 回调
 */
public void checkLatestUpdate(final String bid, UpdateSetting updateSetting,
      final IOfflineUpdateCallback callback)

/**
 * 通过url检查最新离线包的更新
 *
 * @param url url
 * @param updateSetting 检查更新设置
 * @param callback 回调
 */
public void checkUpdateByUrl(final String url, UpdateSetting updateSetting, final IOfflineUpdateCallback callback)

/**
 * url转换,实现fallback url地址转换
 *
 * @param url
 * @param callback
 */
public void loadUrlAysn(final String url, final SimpleCallback<String> callback)

/**
 * 拦截资源
 *
 * @param url 资源url
 * @return null:本地资源不存在
 */
public TMFWebResourceResponse shouldInterceptRequest(String url)

/**
 * 清理所有的离线包数据
 *
 * @param context
 * @param callback
 */
public static void deleteAllOfflineData(final Context context, final SimpleCallback<Integer> callback)

/**
 * 清理指定离线包(同步接口)
 *
 * @param businessIds 要清理的离线包id列表
 * @return 清理成功的离线包id列表
 */
public static List<String> deleteBiz(final Context context, final List<String> businessIds)

/**
 * 清理指定离线包
 *
 * @param callback 是否成功清理,如果本来就没有对应的离线数据也算清除成功
 */
public static void deleteBiz(final Context context, final String businessId,
final SimpleCallback<Integer> callback)

/**
 * 获取本地离线包的配置
 */
public static void getBizConfig(final Context context, final String businessId,
final SimpleCallback<JSONObject> callback)

/**
 * 获取上次更新离线包的时间戳
 */
public static void getBizUpdateTime(final Context context, final String businessId,
final SimpleCallback<Long> callback)

/**
 * 获取本地离线包的配置
 */
public static void getBizConfig(final Context context, final String businessId,
final SimpleCallback<JSONObject> callback)

/**
 * 获取本地离线包的版本
 */
public static String getBizVersion(final Context context, final String businessId)

/**
 * 获取主bid
 *
 * @param url
 * @return
 */
public static String getBusinessId(String url)

/**
 * 获取本地离线包的版本
 *
 * @param context
 * @param callback
 */
public static void getLocalOfflineVersions(final Context context, final SimpleCallback<String> callback)

/**
 * 从assets解压预置的离线包
 *
 * @param context
 * @param businessId
 * @param callback callback返回-1表示解压失败,0表示成功
 */
@Deprecated
public static void releaseBizFromAssets(final Context context, final String businessId,
final SimpleCallback<Integer> callback)
Copyright © 2013-2023 Tencent Cloud. all right reserved,powered by GitbookUpdate Time 2023-08-31 14:46:07

results matching ""

    No results matching ""