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. C语言函数以及函数的使用
  2. Android 模拟MotionEvent事件 触发输入法
  3. android fragment ontouch 事件
  4. Android之Input子系统事件分发流程
  5. Android 在xml布局配置文件中给Button按钮添加事件
  6. Android事件分发机制详解
  7. Android Input事件APP端流程分析
  8. android noTouch 事件
  9. android的触摸屏事件

随机推荐

  1. Android(安卓)Dev
  2. android 禁用home键
  3. android ListView+自定义标题栏
  4. android 开发中找不到org.apache.http包
  5. 安卓离线SDK Windows版 资源包下载地址全
  6. android获得本机ip
  7. Android实现计时与倒计时的几种方法
  8. android笔记---AndroidManifest.xml
  9. android笔记
  10. Android创建和删除桌面快捷方式