1.編寫MyObject類實現(xiàn)要被調(diào)用的android方法
public class MyObject {
Context mcontext;
//構造函數(shù)傳入上下文
public MyObject(Context c) {
mcontext=c;
}
@JavascriptInterface
public void showToast(String name){
//Toast打印消息
Toast.makeText(mcontext, name+",你好", Toast.LENGTH_LONG).show();
}
@JavascriptInterface
public void showList(){
//創(chuàng)建對話框
new AlertDialog.Builder(mcontext)
.setTitle("圖書列表")
.setIcon(R.drawable.ic_launcher)
.setItems(new String[]{"bk1","bk2","bk3","bk4"},null)
.setPositiveButton("確定", null)
.create()
.show();
}
}
2.編寫一個簡單的html文件,嘗試通過JavaScript調(diào)用myObj中的方法
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS調(diào)用android</title>
</head>
<body>
<input type="button" value="hi"
onclick="myObj.showToast('ywwuyi');">
<input type="button" value="list"
onclick="myObj.showList();">
</body>
</html>
3.在MainActivity中疼邀,通過將webSettings設置為允許通過JavaScript調(diào)用android方法奇钞,并為WebView添加JavaScript接口,將myObj指向MyObject類
@SuppressLint("JavascriptInterface")
public class MainActivity extends Activity {
WebView view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
view=(WebView)findViewById(R.id.show);
view.loadUrl("file:///android_asset/test.html");
//通過將webSettings設置為允許通過JavaScript調(diào)用android方法
WebSettings webSettings=view.getSettings();
webSettings.setJavaScriptEnabled(true);
//為WebView添加JavaScript接口,將myObj指向MyObject類
view.addJavascriptInterface(new MyObject(this), "myObj");
}
}
運行程序涯雅,單擊屏幕上的hi按鈕或list按鈕,將通過JavaScript調(diào)用MyObject中的android方法展运,打印消息或彈出對話框