![](/img/trans.png)
[英]Load HTML file from a linked java library into Android webview
[英]Put data from text file into HTML Android Webview
经过数天的搜索,未找到解决方案。
我不是程序员,但是我试图创建一个仅使用条形码阅读器进行搜索的android应用程序。
取代那些昂贵的支票机的应用程序。 只需使用平板电脑和条形码扫描仪,将由库存软件生成的文件(通常是扩展名为.txt
的纯文本文件)复制到microSD卡中(不确定是否可以通过网络将其直接发送到卡中)。
这是带有javascript代码的HTML页面(非常错误和可怕,但也能正常工作)。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="refresh" content="10">
<title>CONSULTA DE PREÇO</title>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="expires" content="timestamp">
<script>
var TRange = null;
function Procurar(str) {
if (parseInt(navigator.appVersion) < 4)
return;
var Resultado;
if (window.find) {
Resultado=self.find(str);
if (Resultado && self.getSelection && !self.getSelection().anchorNode) {
Resultado=self.find(str)
}
if (!Resultado) {
Resultado=self.find(str,0,1)
while (self.find(str,0,1))
continue
}
}
else if (navigator.appName.indexOf("Microsoft")!=-1) {
if (TRange!=null) {
TRange.collapse(false)
Resultado=TRange.findText(str)
if (Resultado)
TRange.select()
}
if (TRange==null || Resultado==0) {
TRange=self.document.body.createTextRange()
Resultado=TRange.findText(str)
if (Resultado)
TRange.select()
}
}
if (!Resultado)
alert ("PRODUTO SEM CADASTRO - PROCURE O VENDEDOR")
return;
}
</script>
<style type="text/css">
body {
background-color:blue;
font-family:sans-serif;
overflow-y: hidden
}
body,div,form,.campo {
margin:0;
padding:0;
border:0
}
*:focus {outline: none;}
.cabeca, .barra {
background-color:blue;
color:white;
text-align:center
}
.resultado,#busca,.botao,.campo {
background-color:yellow
}
#busca,.botao {
color:yellow;border:0
}
.campo {
margin-left:5px;
overflow: hidden;
font-weight:bold;
font-size:15px;
font-family:monospace;
color:#000000;
text-transform:uppercase
}
h1 {
font-size: 40px
}
h5 {
font-size: 15px
}
h6 {
font-size: 13px
}
</style>
</head>
<body onload="document.getElementById('busca').focus();">
<div class="cabeca">
<br>
<h1><i>BUSCA PREÇO</i></h1>
<h5><marquee behavior="alternate">PASSE O CÓDIGO DE BARRAS DO PRODUTO SOB O FEIXE DE LUZ</marquee></h5>
</div>
<div class="resultado">
<form id="f1" action="" onsubmit="if(this.t1.value!=null && this.t1.value!='') Procurar(this.t1.value);return false" name="f1">
<input type="text" id="busca" name="t1" value="" size="20"> <input class="botao" type="submit" name="b1" value="Q">
</form>
<form action="">
<textarea class="campo" name="mytextarea" cols="87" rows="3" readonly>
<!-- TXT CONTENT HERE -->
</textarea>
</form>
<br>
</div>
<div class="barra">
<h6>AGUARDE A CONSULTA ANTERIOR APAGAR ANTES DE REALIZAR OUTRA</h6>
</div>
</body>
</html>
这是我的java:
package br.com.strabelli.qc.quantocusta;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class Tela extends Activity {
WebView mwebview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tela);
mwebview = (WebView) findViewById(R.id.webview);
mwebview.loadUrl("file:///android_asset/index.html");
WebSettings webSettings = mwebview.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(false);
mwebview.setWebViewClient(new WebViewClient());
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mwebview.canGoBack()) {
mwebview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
html文件正确位于资产目录中,应用程序正在运行并且搜索有效,但是问题是我需要将txt文件(应位于sdcard中)的内容注入标签内。
txt的内容是这样的
1000177935227 | Hoje的无花果| 39,00 |
1000177935333 | Poeira Dourada | 40,00 ||
1000177935371 | Rui-Pequena Historia de Uma Grande Vida | 15,00 |
9788575183755 |葡萄牙迪瓜里奥巴萨达林瓜| 60,00 |
9788571644694 | Uma Historia da Guerra | 17,00 ||
我尝试使用iframe和object,但在此代码中无法搜索。 我试图找到一些使用javascript的解决方案,但没有解决。
有可能生成分段的webview吗? 像这样: html (...)textarea + terminal.txt + /textarea (...) /html
感谢您的帮助,对不起我的英语不好。
这样做的方法如下:
Load the html file from assets in a variable String html.
Load the .txt file from sdcard in a variable String text.
做文字替换
html = html.replace("<!-- TXT CONTENT HERE -->", text);
最后使用重载的loadUrl将源html放入webview中。
mwebview.loadUrl(html, ... other parameters...);
要么
mwebview.loadWithBaseUrl(html, ... other parameters ...);
很抱歉,目前没有确切的代码参数来自内存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.