APPBase/apputils/src/main/java/cc/winboll/studio/apputils/AssetsHtmlActivity.java
2025-03-28 20:23:58 +08:00

153 lines
4.9 KiB
Java

package cc.winboll.studio.apputils;
/**
* @Author ZhanGSKen@QQ.COM
* @Date 2025/01/03 11:02:49
* @Describe 一个可以浏览随 APP 附带的 Html 文档的窗口
*/
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toolbar;
import cc.winboll.studio.apputils.R;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.winboll.IWinBollActivity;
import cc.winboll.studio.libapputils.views.SimpleWebView;
import java.io.IOException;
import java.io.InputStream;
public class AssetsHtmlActivity extends WinBollActivityBase implements IWinBollActivity {
@Override
public Activity getActivity() {
return super.getActivity();
}
@Override
public String getTag() {
return TAG;
}
public static final String TAG = "AssetsHtmlActivity";
public static final String EXTRA_HTMLFILENAME = "EXTRA_HTMLFILENAME";
String mszHelpIndexFilePath = "";
Uri mszHelpIndexFileUri;
Context mContext;
// Assets 文件夹里的 Html 文件的名称
String mszHtmlFileName;
//
// @Override
// public Activity getActivity() {
// return this;
// }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// if (item.getItemId() == android.R.id.home) {
// WinBollActivityManager.getInstance(this).finish(this);
// }
return super.onOptionsItemSelected(item);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_assetshtml);
// 初始化工具栏
Toolbar mToolbar = findViewById(R.id.toolbar);
setActionBar(mToolbar);
mszHtmlFileName = "index.html";
Intent intent = getIntent();
if (intent != null) {
String szTemp = intent.getStringExtra(EXTRA_HTMLFILENAME);
if (szTemp != null && !szTemp.trim().equals("")) {
mszHtmlFileName = szTemp.trim();
}
//ToastUtils.show(mszHtmlFileName);
}
// 与其他应用分享 html 帮助
//FileUtils.shareHtmlFile(this, mszHelpIndexFilePath);
// 直接读取 assets 文件显示 WebView
//
initWebViewFromAssets(mszHtmlFileName);
// 复制 assets 文件到数据目录 files 后,
// 显示 WebView
//
// if (App.isDebug()) {
// initAssetsToSD();
// }
// MyWebView myWebView = findViewById(R.id.activityhelpMyWebView1);
// myWebView.getSettings().setSupportZoom(true);
//
// // 使用file协议加载本地HTML文件
// //Test OK //String url = "content://cc.winboll.studio.app.beta.fileprovider/files_path/winboll/studio/html/index.html";
// //myWebView.loadUrl(url);
//
// myWebView.loadUrl(mszHelpIndexFileUri.toString());
}
//
void initWebViewFromAssets(String szHtmlFileName) {
try {
SimpleWebView webView = findViewById(R.id.activityassetshtmlSimpleWebView1);
webView.getSettings().setSupportZoom(true);
// 读取assets文件夹下的index.html文件
InputStream inputStream = getAssets().open("winboll/studio/html/" + szHtmlFileName);
int size = inputStream.available();
byte[] buffer = new byte[size];
inputStream.read(buffer);
inputStream.close();
String html = new String(buffer);
webView.loadDataWithBaseURL(null, html, "text/html", "UTF-8", null);
} catch (IOException e) {
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
}
}
// void initAssetsToSD() {
// String szHtmlFileName = "index.html";
// String szAssetsFilePath = "winboll/studio/html/" + szHtmlFileName;
// StringBuilder sbDst = new StringBuilder();
// sbDst.append(getFilesDir());
// sbDst.append(File.separator);
// sbDst.append("winboll");
// sbDst.append(File.separator);
// sbDst.append("studio");
// sbDst.append(File.separator);
// sbDst.append("html");
// sbDst.append(File.separator);
// File fDstFolder = new File(sbDst.toString());
// if (!fDstFolder.exists()) {
// fDstFolder.mkdirs();
// }
// File fDst = new File(fDstFolder, szHtmlFileName);
//
// mszHelpIndexFilePath = fDst.getPath();
// mszHelpIndexFileUri = FileProvider.getUriForFile(this, getPackageName() + ".fileprovider", fDst);
//
// FileUtils.copyAssetsToSD(this, szAssetsFilePath, mszHelpIndexFilePath);
//
// // 设置只读权限
// //fDst.setReadOnly();
// }
}