Commit db54bfc9 by amateur

1

1 parent 3bb2c0d4
...@@ -73,6 +73,11 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener { ...@@ -73,6 +73,11 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener {
this.initWebView(); this.initWebView();
} }
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
}
public IWebview getWebview() { public IWebview getWebview() {
if (null == this.mWebviewHandler) { if (null == this.mWebviewHandler) {
this.mWebviewHandler = new WebviewHandler(this, this.mWebview); this.mWebviewHandler = new WebviewHandler(this, this.mWebview);
......
package com.polysoft.nafmii.utils;
import androidx.fragment.app.FragmentManager;
import com.polysoft.nafmii.bean.UpdateVersion;
import com.polysoft.nafmii.constants.ServerApi;
import com.polysoft.nafmii.enums.StateEnum;
import com.polysoft.nafmii.fragment.dialog.UpdateDialog;
import com.polysoft.nafmii.net.OkhttpApi;
import com.polysoft.nafmii.net.RequestBack;
import java.io.File;
public class UpdateUtils {
public static void checkVersion(FragmentManager manager, String h5Version) {
ServerApi.postAppVersion(new RequestBack<UpdateVersion>() {
@Override
protected void onResponse(StateEnum state, UpdateVersion data, String message) {
if (state != StateEnum.OK || null == data) {
checkH5Version(h5Version);
return;
}
ExecutorUtils.main(() -> UpdateDialog.show(manager, data));
}
});
}
public static void checkH5Version(String h5Version) {
ServerApi.postH5Version(h5Version, new RequestBack<UpdateVersion>() {
@Override
protected void onResponse(StateEnum state, UpdateVersion data, String message) {
if (state != StateEnum.OK || null == data) {
return;
}
downH5Version(data);
}
});
}
static void downH5Version(UpdateVersion update) {
String url = update.getLocation();
File file = WebVersionUtils.getDistZip(update.getvNumber());
OkhttpApi.doDownload(url, file, new OkhttpApi.IDownListener() {
@Override
public void onProgress(int progress) {
if (progress == 100) {
try {
ZipUtils.unZip(file, file.getParentFile());
WebVersionUtils.setVersion(update.getvNumber());
} catch (Exception e) {
e.printStackTrace();
}
return;
}
}
@Override
public void onFail() {
}
});
}
}
...@@ -30,4 +30,9 @@ public class WebVersionUtils { ...@@ -30,4 +30,9 @@ public class WebVersionUtils {
} }
return dist; return dist;
} }
public static File getDistZip(String version) {
return new File(getDistDir(version), "dist.zip");
}
} }
...@@ -32,7 +32,7 @@ public class ZipUtils { ...@@ -32,7 +32,7 @@ public class ZipUtils {
} }
is = CtxUtils.openAssetsFile(distpath); is = CtxUtils.openAssetsFile(distpath);
unZip(is, distDir); unZip(is, distDir);
} catch (IOException e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} finally { } finally {
IOUtils.close(is); IOUtils.close(is);
...@@ -40,21 +40,19 @@ public class ZipUtils { ...@@ -40,21 +40,19 @@ public class ZipUtils {
} }
public static void unZip(File zipFile, File outDir) { public static void unZip(File zipFile, File outDir) throws Exception {
FileInputStream fis = null; FileInputStream fis = null;
try { try {
fis = new FileInputStream(zipFile); fis = new FileInputStream(zipFile);
unZip(fis, outDir); unZip(fis, outDir);
} catch (FileNotFoundException e) { } catch (Exception e) {
e.printStackTrace(); throw e;
} catch (IOException e) {
e.printStackTrace();
} finally { } finally {
IOUtils.close(fis); IOUtils.close(fis);
} }
} }
public static void unZip(InputStream is, File outDir) throws IOException { public static void unZip(InputStream is, File outDir) throws Exception {
ZipInputStream zis = new ZipInputStream(is); ZipInputStream zis = new ZipInputStream(is);
ZipEntry entry = null; ZipEntry entry = null;
while (null != (entry = zis.getNextEntry())) { while (null != (entry = zis.getNextEntry())) {
...@@ -62,7 +60,7 @@ public class ZipUtils { ...@@ -62,7 +60,7 @@ public class ZipUtils {
} }
} }
private static void unZipEntry(ZipInputStream zis, ZipEntry entry, File outDir) { private static void unZipEntry(ZipInputStream zis, ZipEntry entry, File outDir) throws Exception {
String entryName = entry.getName(); String entryName = entry.getName();
if (entry.isDirectory()) { if (entry.isDirectory()) {
File file = new File(outDir, entryName); File file = new File(outDir, entryName);
...@@ -85,7 +83,7 @@ public class ZipUtils { ...@@ -85,7 +83,7 @@ public class ZipUtils {
fos.flush(); fos.flush();
} }
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); throw new Exception("文件解压失败");
} finally { } finally {
IOUtils.close(fos); IOUtils.close(fos);
} }
......
...@@ -30,11 +30,10 @@ import com.polysoft.nafmii.utils.FileUtils; ...@@ -30,11 +30,10 @@ import com.polysoft.nafmii.utils.FileUtils;
import com.polysoft.nafmii.utils.IntentUtils; import com.polysoft.nafmii.utils.IntentUtils;
import com.polysoft.nafmii.utils.PermissionUtils; import com.polysoft.nafmii.utils.PermissionUtils;
import com.polysoft.nafmii.utils.StatusBarUtils; import com.polysoft.nafmii.utils.StatusBarUtils;
import com.polysoft.nafmii.utils.UpdateUtils;
import com.polysoft.nafmii.wechat.QQApi; import com.polysoft.nafmii.wechat.QQApi;
import com.polysoft.nafmii.wechat.ShareBean; import com.polysoft.nafmii.wechat.ShareBean;
import com.polysoft.nafmii.wechat.WechatApi; import com.polysoft.nafmii.wechat.WechatApi;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.UiError;
import com.whaty.nafmii.activity.HomeActivity; import com.whaty.nafmii.activity.HomeActivity;
import com.whaty.nafmii.activity.OutsideWebviewActivity; import com.whaty.nafmii.activity.OutsideWebviewActivity;
...@@ -288,6 +287,14 @@ public class NativeApi { ...@@ -288,6 +287,14 @@ public class NativeApi {
}); });
} }
@JavascriptInterface
public void nativeUpdate(String param) {
new JsInterfaceHandler(handler).parse(param, (data, js) -> {
String version = data.getString("h5Version");
UpdateUtils.checkVersion(handler.getFragmentManager(), version);
});
}
@JavascriptInterface @JavascriptInterface
public void closePage(String param) { public void closePage(String param) {
......
...@@ -12,7 +12,6 @@ import com.polysoft.nafmii.bean.MenuBean; ...@@ -12,7 +12,6 @@ import com.polysoft.nafmii.bean.MenuBean;
import com.polysoft.nafmii.enums.ModulesEnum; import com.polysoft.nafmii.enums.ModulesEnum;
import com.polysoft.nafmii.fragment.home.ModulesFragmentMgr; import com.polysoft.nafmii.fragment.home.ModulesFragmentMgr;
import com.polysoft.nafmii.utils.AndroidBug5497Workaround; import com.polysoft.nafmii.utils.AndroidBug5497Workaround;
import com.polysoft.nafmii.utils.UpdateUtils;
import com.whaty.nafmii.R; import com.whaty.nafmii.R;
import java.util.HashMap; import java.util.HashMap;
...@@ -32,8 +31,6 @@ public class HomeActivity extends WebviewActivity implements View.OnClickListene ...@@ -32,8 +31,6 @@ public class HomeActivity extends WebviewActivity implements View.OnClickListene
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_home); super.setContentView(R.layout.activity_home);
AndroidBug5497Workaround.assistActivity(this); AndroidBug5497Workaround.assistActivity(this);
UpdateUtils.checkAppVersionOnThread(getSupportFragmentManager());
this.initView(); this.initView();
this.initHomeModule(); this.initHomeModule();
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!