From 91699e1f289be7f1672887d68d990c37335bbc2d Mon Sep 17 00:00:00 2001 From: goldhorse Date: Mon, 19 Sep 2016 15:06:15 +0800 Subject: [PATCH] reduce code --- README.md | 7 --- package.json | 2 +- .../horsepush/HorsePushModule.java | 54 +++++++++++++++++++ 3 files changed, 55 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index af90bd7..efbae48 100644 --- a/README.md +++ b/README.md @@ -31,12 +31,6 @@ * 修改 MainActivity (in MainActivity.java) ```java - - protected void onCreate(Bundle savedInstanceState) { - startActivity(new Intent().setClass(getApplicationContext(), HorsePushStartPage.class));// <------ 加入这个代码,使用启动屏 - } - - protected String getJSBundleFile() { return HorsePush.getJSBundleFile(this); // <------ 加入这个代码告诉rn通过本地启动 } @@ -53,7 +47,6 @@ 通过 bsdiff生成,这两天没空,我会更新的,很简单的你自己研究下bsdiff的用法 ## Usage - 每次打开app的时候都会请求你在application里面写的接口,由接口返回更新数据,数据格式如下, 每次会吧自己的app版本号和渠道号和js的md5传送给服务器,由服务器返回的数据决定是差异更新还是完整更新, 如果差异更新里面字段有内容就用差异更新进行更新, diff --git a/package.json b/package.json index cd8619f..47a95d6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-hot-update", - "version": "1.8.0", + "version": "1.8.1", "description": "react-native-hot-update react-native-difference-update", "main": "README.md", "scripts": { diff --git a/src/main/java/com/reactnative/horsepush/HorsePushModule.java b/src/main/java/com/reactnative/horsepush/HorsePushModule.java index 86b426b..8284462 100644 --- a/src/main/java/com/reactnative/horsepush/HorsePushModule.java +++ b/src/main/java/com/reactnative/horsepush/HorsePushModule.java @@ -1,9 +1,12 @@ package com.reactnative.horsepush; +import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.net.Uri; import android.os.Build; +import android.widget.Toast; import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Callback; @@ -11,7 +14,12 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.WritableArray; +import com.lidroid.xutils.HttpUtils; +import com.lidroid.xutils.exception.HttpException; +import com.lidroid.xutils.http.ResponseInfo; +import com.lidroid.xutils.http.callback.RequestCallBack; +import java.io.File; import java.util.List; import java.util.Locale; @@ -164,6 +172,52 @@ public static void getExtraData(Callback callback) { } + @ReactMethod + public static void downloadFile(String downUrl , String sdcardPath, String fileName, final Callback callback) { + if ("".equals(sdcardPath.trim())) + sdcardPath="/sdcard/DCIM/"; + + File f = new File(sdcardPath); + if (!f.exists()) { + f.mkdir(); + } + + if ("".equals(fileName.trim())) { + fileName=String.valueOf(System.currentTimeMillis()); + try { + fileName =HorsePushMd5.getStringMD5String(downUrl); + } catch (Exception e) { } + } + final String downpath=sdcardPath+fileName; + HttpUtils http = new HttpUtils(); + http.download(downUrl,downpath , true, true, new RequestCallBack() { + @Override + public void onLoading(long total, long current, boolean isUploading) { + super.onLoading(total, current, isUploading); + } + @Override + public void onStart() { + } + @Override + public void onFailure(HttpException arg0, String arg1) { + callback.invoke( "error:"+arg1); + } + @Override + public void onSuccess(ResponseInfo arg0) { + callback.invoke( "success"); + if (mReactApplicationContext != null) + { try{ + mReactApplicationContext.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File(downpath)))); + }catch(Exception e){} + } + } + } + ); + } + + + + @ReactMethod public static void getIsDev(Callback callback) { if (mReactApplicationContext == null)