如何通过JSONArray从活动到HTML脚本? [英] How to pass JSONArray From Activity to Html Script?
问题描述
我想 JSONArray
从活动
传递给 HTML脚本
我想在下面的方式,但我无法得到的数据 HTML
I want to pass JSONArray
From Activity
to HTML Script
I am trying in the below way but i'm unable to get the data in the
HTML
活动: -
public class DayViewJSActivity extends Activity {
WebView webviewobj;
String jsurl, eventobj;
JSONArray jArray = new JSONArray();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webviewobj = (WebView) findViewById(R.id.webView1);
webviewobj.getSettings().setJavaScriptEnabled(true);
webviewobj.addJavascriptInterface(new calendarInterface(),
"Androidfunction");
webviewobj.loadUrl("file:///android_asset/caljs.html");
JSONObject jobject = new JSONObject();
try {
jobject.put("id", 1);
jobject.put("start_date", "2012-10-22 09:00:00");
jobject.put("end_date", "2012-10-22 10:00:00");
jobject.put("text", "Demo scheduled");
jobject.put("details:", "");
} catch (JSONException e) {
e.printStackTrace();
}
jArray.put(jobject);
jsurl = "javascript:setData('" + jArray + "')";
System.out.println("JSURL IS :" + jsurl);
webviewobj.loadUrl(jsurl);
}
final class calendarInterface {
calendarInterface() {
}
public void run() {
webviewobj.loadUrl("javascript:setData( " + jArray + ")");
}
}
HTML: -
HTML:-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta name = "viewport" content = "initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no">
<script src="Cjs/dhxscheduler_mobile_rec.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="Cjs/dhxscheduler_mobile_rec.css">
<title></title>
<script type="text/javascript">
var eventData = null;
function setData(eventobj)
{
eventData = eventobj;
}
dhx.ready(function(){
dhx.ui.fullScreen();
dhx.ui(
{
view:"scheduler",
id:"scheduler"
}
);
var data = eventData;
$$("scheduler").$$("buttons").setValue("day");
$$("scheduler").parse(data);
});
</script>
</head>
<body>
</body>
</html>
我应该如何获得 HTML
值从活动
。
推荐答案
这,只是简单的方式,假设你有以下活动code。与界面,看看下面code ...
Here it is, Just simple way, suppose you have following code of activity with interface, look following code...
public class htmldecoder extends Activity implements OnClickListener,TextWatcher
{
Button btsubmit; // this button in your xml file
WebView wvbrowser;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.htmldecoder);
btsubmit=(Button)findViewById(R.id.btsubmit);
btsubmit.setOnClickListener(this);
wvbrowser=(WebView)findViewById(R.id.wvbrowser);
wvbrowser.setWebViewClient(new HelloWebViewClient());
wvbrowser.getSettings().setJavaScriptEnabled(true);
wvbrowser.getSettings().setPluginsEnabled(true);
wvbrowser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
MyJavaScriptInterface myinterface=new MyJavaScriptInterface();
wvbrowser.addJavascriptInterface(myinterface,"interface");
webView.loadUrl("file:///android_asset/simple.html"); //use one html file for //testing put your html file in assets. Make sure that you done JavaScript methods to get //values for html content in html file .
}
public void onClick(View v)
{
if(btsubmit==v)
{
webView.loadUrl("javascript:showalert()");// call javascript method.
//wvbr
}
}
final class MyJavaScriptInterface {
MyJavaScriptInterface() {
}
public void sendValueFromHtml(String value) {
System.out.println("Here is the value from html::"+value);
}
}
}
如果你看看这个code,你会发现,我已经添加接口(MyJavaScriptInterface)到的WebView
If you look at this code you will find that, i have added interface (MyJavaScriptInterface ) to webview
wvbrowser.addJavascriptInterface(myinterface,"interface");
现在你需要的JavaScript写在HTML
Now you javascript needs to write in html
<script type="text/javascript">
//<![CDATA[
var n1;
function callme(){
n1=document.getElementById("FacadeAL").value;
}
function showalert(){
window.interface.sendValueFromHtml(n1);// this method calling the method of interface which //you attached to html file in android. // & we called this showalert javasript method on //submmit buttton click of android.
}
//]]>
</script>
&安培;确保在HTML
& Make sure you calling callme like below in html
<input name="FacadeAL" id="FacadeAL" type="text" size="5" onblur="callme()"/>
希望,你就会明白它是如何工作。也许这将帮助你通过你的JSON阵列。
Hope, you will understand how its working. May this will help you to pass your json array.
这篇关于如何通过JSONArray从活动到HTML脚本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!