如何将sqlite数据从java传递到javascript

如何将sqlite数据从java传递到javascript,java,android,sqlite,webview,Java,Android,Sqlite,Webview,我想将数据发送到javascript以显示在我的html页面中 这是我创建json的java代码,但我不知道如何将字符串变量转换为json对象,以及如何将其转换为javascript: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myBrowser = (WebView)fin

我想将数据发送到javascript以显示在我的html页面中

这是我创建json的java代码,但我不知道如何将字符串变量转换为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);}

关于如何将Java对象正确转换为JSON,请参见以下内容:


要将此对象传递给JavaScript,可以使用
WebView.evaluateJavascript
方法,请参阅;或者将
WebView.loadUrl
javascript:
scheme一起使用,请参见。

我将代码更改为通过mybrowser.loadUrl()发送变量;但是当我在javascript中提醒它时,它不会显示anything@user3001854:WebView不像浏览器那样显示警报本身,而是将警报委托给embedder应用程序。您需要提供一个
WebChromeClient
子类,该子类通过
WebView.setWebChromeClient
覆盖
onJsAlert