gpt4 book ai didi

javascript - 如何在 Android 中的 MHTML 文件上应用 javaScript 函数?

转载 作者:行者123 更新时间:2023-12-03 00:13:28 24 4
gpt4 key购买 nike

我是编码新手,现在需要一些帮助。我使用 saveWebArchive() 方法保存我的 webView 内容,在 kitkat 和此方法之上将 webView 保存为 mhtml 格式。这是我的代码,我对此部分没有任何问题:

File internalStorage = getApplication().getDir("MyArchive",Context.MODE_PRIVATE);
File webUrlPath = new File(internalStorage.getAbsolutePath());
String urlFileName = webUrlPath.toString();

html_path = urlFileName + File.separator + article.Articlehtml.hashCode() +
".mht";
webView.saveWebArchive(html_path);

当我想在 webView 中加载保存的文件时,我使用 Javascript 来更改字体颜色,对于较低的 kitkat 来说它工作得很好,但对于 kitkat 及以上的更改将不适用。这是我的代码的另一部分,我有问题:

webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setDatabaseEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);

File file = new File(html_path);
//for Kitkat and above
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
webView.loadUrl("file:///" + file);
}
else {
String rawData = null;
try {
rawData = getStringFromFile(html_url);
}catch (Exception e){
//e.printStackTrace();
}
webView.loadDataWithBaseURL(null, rawData,"application/x-webarchive-xml","UTF-8", null);
}

webView.setWebViewClient(new WebViewClient(){
public void onPageFinished(WebView view, String url){
view.setBackgroundColor(Color.parseColor("#212121"));
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { webView.evaluateJavascript("document.body.style.setProperty(\"color\", \"white\");", null);
} else {
webView.loadUrl("javascript:document.body.style.setProperty(\"color\", \"white\");");
}

我希望应用 javaScript 来保存 kitkat 及以上版本的 webView 内容,这意味着我可以在将 mhtml 文件加载到 WebView 中后更改其字体颜色。

感谢您的关注。

最佳答案

您可以使用 webArchiveReader(在 GitHub 中查看)来获取较低的 19 API。对于 KitKat 及以上版本,只需在 webView 中加载文件,但 mht 格式不支持 JavaScript。

关于javascript - 如何在 Android 中的 MHTML 文件上应用 javaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54619612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com