2014-07-11 4 views
0

검색 일수가 부족하여 해결책이 없습니다.텍스트 파일의 데이터를 HTML Android Webview에 넣습니다.

저는 프로그래머가 아니지만 바코드 리더 만 사용하여 검색하는 안드로이드 응용 프로그램을 만들려고합니다.

값 비싼 수표 가격 기계를 대체하는 앱입니다. 태블릿과 바코드 스캐너를 사용하여 재고 소프트웨어 (보통 .txt 확장명의 일반 텍스트 파일)로 생성 된 파일을 microSD 카드 (네트워크를 통해 파일을 카드로 직접 보낼 수 있는지 확실하지 않음)에 복사하십시오.

이것은 자바 스크립트 코드가 포함 된 HTML 페이지입니다 (매우 잘못되었지만 끔찍했지만 잘 작동합니다). 문제는 내가 주입 필요가있다

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 파일이 올바르게 자산 디렉토리에있는이 응용 프로그램이 실행되고 검색 작동하지만 :

<!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&Ccedil;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&Ccedil;O</i></h1> <h5><marquee behavior="alternate">PASSE O C&Oacute;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 &amp;&amp; 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> 

내 자바입니다 태그 내부의 txt 파일 내용 (sdcard에 있어야 함)

TXT의 내용이

1000177935227처럼 | Figuras 드 Ontem 전자 드 Hoje | 39,00 일 |

1000177935333 | Poeira Dourada | 40,00 |

1000177935371 | Rui - Pequena Historia de Uma Grande Vida | 15,00 |

9788575183755 | Dicionario Barsa da Lingua Portuguesa | 60,00 |

9788571644694 | 우마 히스토리 아 다 구 에라 | 17,00 |

iframe 및 개체를 시도했지만이 태그 내에서 검색이 작동하지 않습니다. javascript로 몇 가지 솔루션을 찾으려고했지만 아무데도 가지 않았습니다.

조각으로 웹보기를 생성 할 수 있습니까? 이런 종류의 : html (...)textarea + terminal.txt + /textarea (...) /html

어떤 도움을 주셔서 감사합니다, 제 영어는 유감스럽게 생각합니다.

답변

0

그렇게하는 방법은 다음과 같다 :

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); 

이 Fially 웹보기에서 HTML 소스를 넣어 오버로드 loadUrl를 사용하여 대체 마십시오.

mwebview.loadUrl(html, ... other parameters...); 

또는 순간 메모리에서 더 정확한 코드 매개 변수에 죄송

mwebview.loadWithBaseUrl(html, ... other parameters ...); 

.

관련 문제