【问题标题】:Android load encrypted HTML+JS to webview from asset folderAndroid 从资产文件夹将加密的 HTML+JS 加载到 webview
【发布时间】:2017-11-04 03:32:55
【问题描述】:

我有一个“简单”的问题,我尝试了几天来解决,但没有解决。我有一个带有 Javascript 文件的 HTML 用 AES 加密到我的资产文件夹中,我想要做的是在解密后将它加载到 webview 中。我不能使用加载 URL,因为 loadUrl() 需要一个 filePath 并且我的文件是加密的,所以我不能提供它,因为我必须先解密它

webView.loadUrl("file:///android_asset/encrypted.html"); 

所以在我尝试之后

loadData(htmlJsString, "text/html", "UTF-8");

其中 htmlJsString 是作为解密字符串的 encrypted.html 文件,但这样做只有 HTML 代码在工作,而 javascript 不工作( webView.setJavaScriptEnabled(true); )。

简而言之,如何将加密的 HTML+JS 从资产文件夹加载到我的 webView 中?

【问题讨论】:

  • 请详细解释“当 javascript 不是”是什么意思。这个 JavaScript 是否嵌入在 HTML 文件中?另请记住,您的加密可能毫无意义——如果您的 AES 密码是硬编码的,那么对其进行逆向工程将是微不足道的。
  • javascript 不工作并且是嵌入的,至于 AES 的密码短语这不是问题

标签: javascript android encryption webview android-assets


【解决方案1】:

确保已设置此标志

WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setDisplayZoomControls(false);
webSettings.setSupportZoom(true);
webSettings.setDefaultTextEncodingName("utf-8");

【讨论】:

  • htmlJsString 不是路径它是我读取和解密的 encrypted.html 文件,它是文件的内容
  • 我知道。阅读method documentation,它应该可以工作:
  • 我已经更新了我的答案。关注webSettings.setDomStorageEnabled(true);。告诉我
  • huuuu 谢谢它的工作ggg... setDomStorageEnabled(true); Grazie per l'aiuto
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
相关资源
最近更新 更多