Commit 7606bd5a 7606bd5a3ea4837fc6fc5608d17656d56c48a554 by 金学艇

1.解决下载游戏时返回,游戏依然在后台下载

1 parent edac4bc5
...@@ -353,9 +353,9 @@ cc.Class({ ...@@ -353,9 +353,9 @@ cc.Class({
353 } 353 }
354 this._aFocusTargets[0]['ButtonOpen'] = cc.find('ButtonOpen', this.node); 354 this._aFocusTargets[0]['ButtonOpen'] = cc.find('ButtonOpen', this.node);
355 355
356 let fiBanner = cc.find('ButtonVip', this.node).addComponent(FocusInfo); // 356 // let fiBanner = cc.find('ButtonVip', this.node).addComponent(FocusInfo); //
357 fiBanner.init('', true, null, null, 1.06); 357 // fiBanner.init('', true, null, null, 1.06);
358 this._aFocusTargets[0]['button_vip'] = cc.find('ButtonVip', this.node); 358 // this._aFocusTargets[0]['button_vip'] = cc.find('ButtonVip', this.node);
359 359
360 var nodeInitFocus = cc.find('ButtonOpen', this.node); //强制写死,不然会闪屏,找不到ButtonOpen 360 var nodeInitFocus = cc.find('ButtonOpen', this.node); //强制写死,不然会闪屏,找不到ButtonOpen
361 // cc.log("初始化 " + nodeInitFocus.name); 361 // cc.log("初始化 " + nodeInitFocus.name);
......
...@@ -100,6 +100,9 @@ cc.Class({ ...@@ -100,6 +100,9 @@ cc.Class({
100 case cc.macro.KEY.backspace: 100 case cc.macro.KEY.backspace:
101 case Common.ANDROID_KEY.back: 101 case Common.ANDROID_KEY.back:
102 this._bIsFocusInit = true; 102 this._bIsFocusInit = true;
103 if (this._oSceneContext._downloadUrl && this._oSceneContext._downloadUrl != "undefined") { //如果有下载地址就启动奥比游戏
104 jsb.reflection.callStaticMethod("com/topdraw/melody/TopdrawSDKWrapper", "closeDownloadObiApk", "()V");
105 }
103 this.backAScene(); 106 this.backAScene();
104 break; 107 break;
105 } 108 }
......
...@@ -37,6 +37,11 @@ public class OBiPluginLoader { ...@@ -37,6 +37,11 @@ public class OBiPluginLoader {
37 public static final int PROGRESS_0_01 = 1; 37 public static final int PROGRESS_0_01 = 1;
38 public static double PROGRESS = PROGRESS_1; 38 public static double PROGRESS = PROGRESS_1;
39 private String sdPath = Environment.getExternalStorageDirectory() + "/"; 39 private String sdPath = Environment.getExternalStorageDirectory() + "/";
40 private HttpURLConnection conn;
41 private BufferedInputStream bis = null;
42 private FileOutputStream fos = null;
43 private File fTemp;
44 private File dirPackage;
40 45
41 public static OBiPluginLoader getInstance() { 46 public static OBiPluginLoader getInstance() {
42 if (null == instance) { 47 if (null == instance) {
...@@ -83,10 +88,7 @@ public class OBiPluginLoader { ...@@ -83,10 +88,7 @@ public class OBiPluginLoader {
83 88
84 public void start(String downloadUrl, String packageName, final OnResultListener rListener, final OnProgressListener pListener) { 89 public void start(String downloadUrl, String packageName, final OnResultListener rListener, final OnProgressListener pListener) {
85 this.path = downloadUrl; 90 this.path = downloadUrl;
86 final File dirPackage = new File(sdPath + packageName); 91 dirPackage = new File(sdPath + packageName);
87 if (!dirPackage.exists()) {
88 dirPackage.mkdir();
89 Log.d("OBiPluginLoader", "创建目录" + dirPackage);
90 final OnProgressListener pl = new OnProgressListener() { 92 final OnProgressListener pl = new OnProgressListener() {
91 @Override 93 @Override
92 public void onProgress(double d) { 94 public void onProgress(double d) {
...@@ -95,7 +97,6 @@ public class OBiPluginLoader { ...@@ -95,7 +97,6 @@ public class OBiPluginLoader {
95 } 97 }
96 } 98 }
97 }; 99 };
98
99 String fileName = null; 100 String fileName = null;
100 if (null != this.path) { 101 if (null != this.path) {
101 if (this.path.contains("?")) { 102 if (this.path.contains("?")) {
...@@ -107,6 +108,9 @@ public class OBiPluginLoader { ...@@ -107,6 +108,9 @@ public class OBiPluginLoader {
107 fileName = this.path.substring(this.path.lastIndexOf("/") + 1); 108 fileName = this.path.substring(this.path.lastIndexOf("/") + 1);
108 } 109 }
109 } 110 }
111 if (!dirPackage.exists()) {
112 dirPackage.mkdir();
113 Log.d("OBiPluginLoader", "创建目录" + dirPackage);
110 final File fileTempOK = new File(dirPackage, fileName); 114 final File fileTempOK = new File(dirPackage, fileName);
111 final OnResultListener rl = new OnResultListener() { 115 final OnResultListener rl = new OnResultListener() {
112 @Override 116 @Override
...@@ -152,6 +156,27 @@ public class OBiPluginLoader { ...@@ -152,6 +156,27 @@ public class OBiPluginLoader {
152 if (null != rListener) { 156 if (null != rListener) {
153 rListener.onResult(0, path); 157 rListener.onResult(0, path);
154 } 158 }
159 } else { //这里再去下载,jerry -0317
160 final File fileTempOK = new File(dirPackage, fileName);
161 final OnResultListener rl = new OnResultListener() {
162 @Override
163 public void onResult(int i, String msg) {
164 if (0 == i) {
165 boolean checkSuccess = false;
166 if (fileTempOK.exists() && fileTempOK.isFile()) {
167 if (null != rListener) {
168 rListener.onResult(0, fileTempOK.getAbsolutePath());
169 }
170 }
171 }
172 }
173 };
174 new Thread(new Runnable() {
175 @Override
176 public void run() {
177 downloadApk("", fileTempOK, rl, pl);
178 }
179 }).start();
155 } 180 }
156 } 181 }
157 } 182 }
...@@ -159,8 +184,6 @@ public class OBiPluginLoader { ...@@ -159,8 +184,6 @@ public class OBiPluginLoader {
159 public void downloadApk(String downloadURL, final File file, OnResultListener rlistener, OnProgressListener plistener) { 184 public void downloadApk(String downloadURL, final File file, OnResultListener rlistener, OnProgressListener plistener) {
160 Log.d("OBiPluginLoader", "downloadApk start.."); 185 Log.d("OBiPluginLoader", "downloadApk start..");
161 downloadURL = this.path; 186 downloadURL = this.path;
162 BufferedInputStream bis = null;
163 FileOutputStream fos = null;
164 try { 187 try {
165 if (file.exists() && file.isFile()) { 188 if (file.exists() && file.isFile()) {
166 file.delete(); 189 file.delete();
...@@ -169,7 +192,7 @@ public class OBiPluginLoader { ...@@ -169,7 +192,7 @@ public class OBiPluginLoader {
169 if (!parentFile.exists()) { 192 if (!parentFile.exists()) {
170 parentFile.mkdir(); 193 parentFile.mkdir();
171 } 194 }
172 File f = new File(file.getAbsolutePath() + "_temp"); 195 fTemp = new File(file.getAbsolutePath() + "_temp");
173 String url = null; 196 String url = null;
174 if (downloadURL.startsWith("http")) { 197 if (downloadURL.startsWith("http")) {
175 url = downloadURL; 198 url = downloadURL;
...@@ -178,7 +201,7 @@ public class OBiPluginLoader { ...@@ -178,7 +201,7 @@ public class OBiPluginLoader {
178 } 201 }
179 URL u = new URL(url); 202 URL u = new URL(url);
180 Log.d("OBiPluginLoader", "downloadAPK url: " + url); 203 Log.d("OBiPluginLoader", "downloadAPK url: " + url);
181 HttpURLConnection conn = (HttpURLConnection) u.openConnection(); 204 conn = (HttpURLConnection) u.openConnection();
182 conn.setRequestMethod("GET"); 205 conn.setRequestMethod("GET");
183 conn.setConnectTimeout(5000); 206 conn.setConnectTimeout(5000);
184 conn.setReadTimeout(5000); 207 conn.setReadTimeout(5000);
...@@ -199,7 +222,7 @@ public class OBiPluginLoader { ...@@ -199,7 +222,7 @@ public class OBiPluginLoader {
199 long tempReadSize = 0; 222 long tempReadSize = 0;
200 long progressSize = 0; 223 long progressSize = 0;
201 bis = new BufferedInputStream(conn.getInputStream()); 224 bis = new BufferedInputStream(conn.getInputStream());
202 fos = new FileOutputStream(f); 225 fos = new FileOutputStream(fTemp);
203 byte[] buffer = new byte[1024]; 226 byte[] buffer = new byte[1024];
204 int len = 0; 227 int len = 0;
205 while ((len = bis.read(buffer)) != -1) { 228 while ((len = bis.read(buffer)) != -1) {
...@@ -228,7 +251,7 @@ public class OBiPluginLoader { ...@@ -228,7 +251,7 @@ public class OBiPluginLoader {
228 } 251 }
229 fos.write(buffer, 0, len); 252 fos.write(buffer, 0, len);
230 } 253 }
231 boolean flag = f.renameTo(file); 254 boolean flag = fTemp.renameTo(file);
232 String[] command = {"chmod", "777", file.getPath()}; 255 String[] command = {"chmod", "777", file.getPath()};
233 ProcessBuilder builder = new ProcessBuilder(command); 256 ProcessBuilder builder = new ProcessBuilder(command);
234 try { 257 try {
...@@ -272,6 +295,34 @@ public class OBiPluginLoader { ...@@ -272,6 +295,34 @@ public class OBiPluginLoader {
272 } 295 }
273 } 296 }
274 297
298 public void closeDownloadApk() {
299 Log.d("OBiPluginLoader", "目录是否存在:" + dirPackage.exists());
300 if (fTemp.exists() && fTemp.isFile()) {
301 fTemp.delete();
302 }
303 if (null != conn) {
304 try {
305 conn.disconnect();
306 } catch (Exception e) {
307 e.printStackTrace();
308 }
309 }
310 if (null != bis) {
311 try {
312 bis.close();
313 } catch (IOException e) {
314 e.printStackTrace();
315 }
316 }
317 if (null != fos) {
318 try {
319 fos.close();
320 } catch (IOException e) {
321 e.printStackTrace();
322 }
323 }
324 }
325
275 public interface OnResultListener { 326 public interface OnResultListener {
276 public void onResult(int i, String msg); 327 public void onResult(int i, String msg);
277 } 328 }
......
...@@ -321,6 +321,11 @@ public class TopdrawSDKWrapper { ...@@ -321,6 +321,11 @@ public class TopdrawSDKWrapper {
321 }); 321 });
322 } 322 }
323 323
324 public static void closeDownloadObiApk() {
325 Log.d(TAG,"取消下载。。。");
326 OBiPluginLoader.getInstance().closeDownloadApk();
327 }
328
324 public static boolean isApkInstalled(Context context, String packageName) { 329 public static boolean isApkInstalled(Context context, String packageName) {
325 // List<PackageInfo> packageInfoList = context.getPackageManager().getInstalledPackages(0); 330 // List<PackageInfo> packageInfoList = context.getPackageManager().getInstalledPackages(0);
326 // for (int i = 0; i < packageInfoList.size(); i++) { 331 // for (int i = 0; i < packageInfoList.size(); i++) {
......