tml页面(命名:Android.html放在assets文件夹下):::::
Text.java代码:::
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.Editable;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Text extends Activity implements OnClickListener {
private Button button;
private TextView text;
private WebView web;
private EditText edit;
private Handler handler;
private void initView() {
button = (Button) this.findViewById(R.id.button2);
web = (WebView) this.findViewById(R.id.webView1);
edit = (EditText) this.findViewById(R.id.editText1);
button.setOnClickListener(this);
}
private void setWebView() {
web.setWebViewClient(new WebViewClient());
web.requestFocus();
WebSettings setting = web.getSettings();
setting.setJavaScriptEnabled(true);
web.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
web.requestFocus();
return false;
}
});
web.addJavascriptInterface(new SendAndroid(), "theKey");
web.loadUrl("file:///android_asset/android.html");
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initView();
setWebView();
handler = new Handler() {
public void handleMessage(android.os.Message msg) {
String str = msg.obj.toString();
text.setText(str);
};
};
}
@Override
public void onClick(View v) {
Editable editable = edit.getText();
web.loadUrl("javascript:get4Android(\"" + editable.toString()
+ "\")");
}
class SendAndroid {
public void runOnAndroidJavaScript(final String str) {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("******" + str);
Message mes = handler.obtainMessage();
mes.obj = str;
handler.sendMessage(mes);
}
}).start();
}
}
}
主要是:web.loadUrl("javascript:get4Android(\"" + editable.toString()+ "\")");中的“javascript:get4Android”要和html中的【function get4Android(str){
document.getElementById("show").innerHTML="This is a message from android:"+str;
}】方法名相同
在android开发中,通常使用xml格式来描述布局文件。就目前而言,熟悉android布局及美化的人员少之又少,出现了严重的断层。大部分企业,其实还是程序员自己动手布局。这样既浪费时间和精力,也未必能达到理想的效果。但是,在企业级的android开发中,使用html页面进行布局,也有很多的优势(例如:简单,大部分开发人员及美工都熟悉,方便统一进行更新,管理)。
复制代码 代码如下:
package com.dazhuo.ui;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import com.dazhuo.domain.Person;
import com.dazhuo.service.PersonService;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
public class MainActivity extends Activity {
private PersonService service;
private WebView webview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
service =new PersonService();
webview = (WebView) this.findViewById(R.id.webView);//android内置浏览器对象
webview.getSettings().setJavaScriptEnabled(true);//启用javascript支持
//添加一个js交互接口,方便html布局文件中的javascript代码能与后台java代码直接交互访问
webview.addJavascriptInterface(new PersonPlugin() , "Person");//new类名,交互访问时使用的别名
//
tml页面(命名:Android.html放在assets文件夹下):::::