给webapp加上一个apk外壳

1、在Android Studio里创建一个项目

2.创建MyApplication.java  1.创建webview  2.创建一个线程把文件复制到一个文件夹里  3.解压缩包  4.webview的url指向本地

public class stuGuide extends AppCompatActivity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_stu_guide); /*WebView main = (WebView)findViewById(R.id.main);*/ webView = (WebView) findViewById(R.id.main); new Thread(new Runnable() { @Override public void run() { putfile(); try { unZipWebZipInThread(); } catch (Exception e) { e.printStackTrace(); } } }).start(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) { webView.goBack();// 返回前一个页面 return true; } return super.onKeyDown(keyCode, event); } private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { File path = Environment.getExternalStorageDirectory(); String mainUrl ="file://" + path + "/stuGuide/studentGuide/index.html"; WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webView.loadUrl(mainUrl); } }; private void putfile() { InputStream is = null; try { is = this.getAssets().open("studentGuide.zip"); File path = Environment.getExternalStorageDirectory(); System.out.println("path== " + path); File file = new File(path + "/stuGuide"); file.mkdir(); File absoluteFile = file.getAbsoluteFile(); System.out.println("absoluteFile===" + absoluteFile); if (file.exists()) { System.out.println("file exists"); } FileOutputStream fos = new FileOutputStream(new File(file.getAbsolutePath()+"/studentGuide.zip")); byte[] buffer = new byte[1024]; int byteCount; while ((byteCount = is.read(buffer)) != -1) { fos.write(buffer, 0, byteCount); } fos.flush(); is.close(); fos.close(); } catch (IOException e) { e.printStackTrace(); } } private void unZipWebZipInThread() throws Exception { File path = Environment.getExternalStorageDirectory(); String dstPath = path + "/stuGuide/studentGuide.zip"; ZipFile zipFile = new ZipFile(dstPath); if (zipFile.isValidZipFile()) { final ProgressMonitor progressMonitor = zipFile.getProgressMonitor(); new Thread(new Runnable() { @Override public void run() { try { int percentDone; while (true) { Thread.sleep(50); percentDone = progressMonitor.getPercentDone(); if (percentDone >= 100) { break; } } mHandler.sendEmptyMessage(1); } catch (InterruptedException e) { //JavaLog.e(TAG, e); } } }).start(); zipFile.extractAll(path + "/stuGuide/"); } } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwpgsw.html