【问题标题】:How to pass sqlite data from java to javascript如何将sqlite数据从java传递到javascript
【发布时间】:2015-05-17 05:28:52
【问题描述】:

我想将数据发送到 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 android sqlite webview


    【解决方案1】:

    关于如何正确地将 Java 对象转换为 JSON,请参阅:Convert object to JSON in Android

    要将这个对象传递给 JavaScript,你可以使用WebView.evaluateJavascript 方法,参见How does evaluateJavascript work?;或使用WebView.loadUrljavascript: 方案,参见this

    【讨论】:

    • 我将代码更改为通过 mybrowser.loadurl() 发送变量;但是当我在 javascript 中提醒它什么都没有显示时
    • @user3001854:WebView 本身并不像浏览器那样显示警报,而是将其委托给嵌入应用程序。您需要提供一个 WebChromeClient 子类,该子类通过 WebView.setWebChromeClient 覆盖 onJsAlert method
    猜你喜欢
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2017-11-10
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多