1.最新研究react-native android热更新组件react-native-pushy,发现官方例子只有更新成功或失败的回调,没有更新进度回调,所以自己捣鼓一个更新进度获取和显示。
下面是热更新android源码,只有 public void onDownloadCompleted()和public void onDownloadFailed(Throwable error)这两个回调方法。
@ReactMethod
public void downloadUpdate(ReadableMap options, final Promise promise){
String url = options.getString("updateUrl");
String hash = options.getString("hashName");
updateContext.downloadFile(url, hash, new UpdateContext.DownloadFileListener() {
@Override
public void onDownloadCompleted() {
promise.resolve(null);//成功回调
}
@Override
public void onDownloadFailed(Throwable error) {
promise.reject(error);//失败回调
}
});
}
2.因为没有进度回调,怎么办?我想出两个方案:
方案一:回调接口增加一个进度回调方法
public interface DownloadFileListener {
void onDownloadCompleted();
void onDownloadProgress();//进度回调
void onDownloadFailed(Throwable error);
}
方案二:获取下载进度,使用事件方式发送到js这边,通过监听更新进度页面。
3.方案一实现:
downloadFile这个下载方法使用Hander Message 方式发下载进度发送到回调接口 void onDownloadProgress()。onD