如何将sqlite数据从java传递到javascript
我想将数据发送到javascript以显示在我的html页面中 这是我创建json的java代码,但我不知道如何将字符串变量转换为json对象,以及如何将其转换为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
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
。