index.html的内容:

<html>
<head>
<scriptlanguage="JavaScript">
functioncallJS(arg){
document.getElementById('replaceme').innerHTML=arg;
}//android会来调用它
</script>
</head>
<body>
<h1>WebView</h1>
<p>
<ahref="#"onclick="window.alert('AlertfromJavaScript')">
DisplayJavaScriptalert</a>//该事件会被android截获
</p>
<p>
<ahref="#"onclick="window.android.callAndroid('HellofromBrowser')">
CallAndroidfromJavaScript</a>//js通过自己定义“android"接口来调用java类中的方法,"android"可以改成任意的,但必须和java中设置的接口名一致
</p>
<pid="replaceme">
</p>
</body>
</html>



Activity中设置:


packagecom.test.localbrowser;

importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.webkit.JsResult;
importandroid.webkit.WebChromeClient;
importandroid.webkit.WebView;
importandroid.widget.Button;
importandroid.widget.TextView;
importandroid.widget.Toast;

publicclassLocalBrowserActivityextendsActivity{

privatestaticfinalStringTAG="LocalBrowser";
privatefinalHandlerhandler=newHandler();
privateWebViewwebView;
privateTextViewtextView;
privateButtonbutton;

privateclassAndroidBridge//这个类中提供各种js可调用的方法。
{
publicvoidcallAndroid(finalStringarg)
{
handler.post(newRunnable(){
publicvoidrun()
{
Log.d(TAG,"calAndroid("+arg+")");
textView.setText(arg);
}
});
}
}

@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

webView=(WebView)findViewById(R.id.web_view);
textView=(TextView)findViewById(R.id.text_view);
button=(Button)findViewById(R.id.button);

webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(newAndroidBridge(),"android");//将那个实例化的函数类设置为”android"的js接口。
webView.setWebChromeClient(newWebChromeClient()
{

@Override
publicbooleanonJsAlert(WebViewview,Stringurl,Stringmessage,
JsResultresult){

Log.d(TAG,"onJsAlert("+view+","+url+","+message+","+result+")");
Toast.makeText(LocalBrowserActivity.this,message,3000).show();
result.confirm();
returntrue;
}

});//设置可以被java截获的js事件。


webView.loadUrl("file:///android_asset/index.html");
button.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewv){
Log.d(TAG,"onClick("+v+")");
webView.loadUrl("javascript:callJS('hellofromandroid')");//java调用js的函数
}
});
}

}

有了这些基础,可以尝试用html做界面

更多相关文章

  1. Android消息机制不完全解析(上)
  2. Android(安卓)PVPlayer介绍
  3. android 接收监听开机广播
  4. 关于id的小知识
  5. android ActivityManagerService服务详解
  6. android基础---->Parcelable的使用
  7. android 中文api (84) —— TrafficStats
  8. android fragment ontouch 事件
  9. Android之Service学习篇一:Service启动方式之startService

随机推荐

  1. Android(安卓)XML 解析
  2. Android(安卓)SDK Android(安卓)NDK Andr
  3. Eclipse Android(安卓)SDK Manager下载失
  4. 关于id的小知识
  5. Android(安卓)XML解析
  6. Android(安卓)使用ViewPager实现广告条滚
  7. [学习]创建一个Android工程
  8. Android(安卓)Studio 初体验
  9. Android(安卓)ADT和SDK历史版本离线包下
  10. 制作linux根文件系统