Android WebView中的JavaScript调用android方法
16lz
2021-01-23
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方法,打印消息或弹出对话框
更多相关文章
- [导入]Android平台上四种保存数据的方法
- Android 动态切换底部tab按钮
- Android的关键的持久数据应该在onPause()方法中保存
- Android添加单元测试的方法与步骤
- Android Studio无法执行Java类的main方法问题及解决方法
- Android获取屏幕宽度的4种方法
- android 开发收银系统,弹出键盘固定界面UI的方法
- Android 的 Button 按钮实现的两种方式
- ImageButton动态改变按钮图片