1.编写MyObject类实现要被调用的android方法

public class MyObject {    Context mcontext;    //构造函数传入上下文    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(){        //创建对话框        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调用myObj中的方法

JS调用android

3.在MainActivity中,通过将webSettings设置为允许通过JavaScript调用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调用android方法        WebSettings webSettings=view.getSettings();        webSettings.setJavaScriptEnabled(true);        //为WebView添加JavaScript接口,将myObj指向MyObject类        view.addJavascriptInterface(new MyObject(this), "myObj");    }}

运行程序,单击屏幕上的hi按钮或list按钮,将通过JavaScript调用MyObject中的android方法,打印消息或弹出对话框

更多相关文章

  1. 修改dialog的大小
  2. Android下载网络图片到本地
  3. Android(安卓)Studio 快捷键
  4. android 中让activity全屏幕显示
  5. Android对接webService接口
  6. Android中贪吃蛇游戏的学习(二)
  7. android 中让activity全屏幕显示
  8. 整理出来的一些Android基础知识
  9. Android(安卓)- MediaPlayer

随机推荐

  1. 页面未随软键盘上升及android隐藏软键盘
  2. Android异步更新UI-线程池-Future-Handle
  3. Android(安卓)wifi设计原理(源码分析)
  4. Android应用模块基本配置元素
  5. java.lang.NoClassDefFoundError错误解决
  6. Android UEventObserver
  7. Android(安卓)混淆 Unknown verification
  8. 沈大海移动开发入门课程android,j2me, 在
  9. Opencv for Android(安卓)之透视变换
  10. [Android Studio] Android studio 多渠道