Commit db54bfc9 by amateur

1

1 parent 3bb2c0d4
......@@ -73,6 +73,11 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener {
this.initWebView();
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
}
public IWebview getWebview() {
if (null == this.mWebviewHandler) {
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 {
}
return dist;
}
public static File getDistZip(String version) {
return new File(getDistDir(version), "dist.zip");
}
}
......@@ -32,7 +32,7 @@ public class ZipUtils {
}
is = CtxUtils.openAssetsFile(distpath);
unZip(is, distDir);
} catch (IOException e) {
} catch (Exception e) {
e.printStackTrace();
} finally {
IOUtils.close(is);
......@@ -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;
try {
fis = new FileInputStream(zipFile);
unZip(fis, outDir);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
throw e;
} finally {
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);
ZipEntry entry = null;
while (null != (entry = zis.getNextEntry())) {
......@@ -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();
if (entry.isDirectory()) {
File file = new File(outDir, entryName);
......@@ -85,7 +83,7 @@ public class ZipUtils {
fos.flush();
}
} catch (IOException e) {
e.printStackTrace();
throw new Exception("文件解压失败");
} finally {
IOUtils.close(fos);
}
......
......@@ -30,11 +30,10 @@ import com.polysoft.nafmii.utils.FileUtils;
import com.polysoft.nafmii.utils.IntentUtils;
import com.polysoft.nafmii.utils.PermissionUtils;
import com.polysoft.nafmii.utils.StatusBarUtils;
import com.polysoft.nafmii.utils.UpdateUtils;
import com.polysoft.nafmii.wechat.QQApi;
import com.polysoft.nafmii.wechat.ShareBean;
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.OutsideWebviewActivity;
......@@ -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
public void closePage(String param) {
......
......@@ -12,7 +12,6 @@ import com.polysoft.nafmii.bean.MenuBean;
import com.polysoft.nafmii.enums.ModulesEnum;
import com.polysoft.nafmii.fragment.home.ModulesFragmentMgr;
import com.polysoft.nafmii.utils.AndroidBug5497Workaround;
import com.polysoft.nafmii.utils.UpdateUtils;
import com.whaty.nafmii.R;
import java.util.HashMap;
......@@ -32,8 +31,6 @@ public class HomeActivity extends WebviewActivity implements View.OnClickListene
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_home);
AndroidBug5497Workaround.assistActivity(this);
UpdateUtils.checkAppVersionOnThread(getSupportFragmentManager());
this.initView();
this.initHomeModule();
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!