2015-03-14 2 views
0

Я хочу отправить данные на javascript, чтобы показать их на моей странице html.Как передать данные sqlite из java в javascript

Это мой Java-код для создания JSON, но я не знаю, как я могу преобразовать свою переменную строку в объект JSON и как получить, что для JavaScript:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    myBrowser = (WebView)findViewById(R.id.mybrowser); 

    final MyJavaScriptInterface myJavaScriptInterface = new MyJavaScriptInterface(this); 
    myBrowser.addJavascriptInterface(myJavaScriptInterface, "AndroidFunction"); 

    myBrowser.getSettings().setJavaScriptEnabled(true); 
    myBrowser.setWebChromeClient(new WebChromeClient()); 
    myBrowser.loadUrl("file:///android_asset/index.html"); 

    final SQLiteDatabase mydatabase1 = openOrCreateDatabase("CopyCollection", MODE_PRIVATE, null); 
    String tmp = ""; 
    String JsonTxt = ""; 
    Cursor c = mydatabase1.rawQuery("SELECT * FROM Details ", null); 
    if(c.moveToFirst()){ 
     do{ 
      String id = c.getString(0); 
      String app = c.getString(1); 
      String txt = c.getString(2); 
      String text_time = c.getString(3); 
      tmp += "{\"ID\":"+id+",\"App\":\""+app+"\",\"Content\":\""+txt+"\",\"Date\":\""+text_time+"\"},"; 
     }while(c.moveToNext()); 
    } 
    JsonTxt = "["+tmp+"]"; 
    myBrowser.loadUrl("javascript:AlertContent("+JsonTxt+")"); 
    c.close(); 
    mydatabase1.close();} 

JavaScript:

function AlertContent(msg){alert(msg);} 

ответ

0

О том, как правильно преобразовать объекты Java в JSON, см. Это: Convert object to JSON in Android.

Для передачи этого объекта в JavaScript, вы можете использовать метод WebView.evaluateJavascript, см. How does evaluateJavascript work?; или использовать WebView.loadUrl с схемой javascript:, см. this.

+0

Я изменяю свой код для отправки переменной mybrowser.loadurl(); но когда я предупреждаю, что в javascript ничего не отображается – user3001854

+0

@ user3001854: WebView не показывает сами оповещения, как и браузеры, вместо этого он делегирует это приложение для приложения. Вам необходимо предоставить подкласс 'WebChromeClient', который переопределяет' onJsAlert' [метод] (http://developer.android.com/reference/android/webkit/WebChromeClient.html#onJsAlert (android.webkit.WebView,% 20java.lang .String,% 20java.lang.String,% 20android.webkit.JsResult)) через 'WebView.setWebChromeClient'. –

Смежные вопросы