常用的Js调Android方法,以及Android原生传值给Js
16lz
2021-01-23
最近公司弄点这样的需求,我借此机会学习重新温故了一下,Js掉用android原生的方法 还有把值传回给js的方法
JavaScript掉Android原生
android代码
private void initView() { mWebView = findViewById(R.id.web_x); WebSettings webSettings = mWebView.getSettings(); // 设置与Js交互的权限 webSettings.setJavaScriptEnabled(true); //设置编码 //webSettings.setDefaultTextEncodingName("GBK"); // 设置允许JS弹窗 webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //加载页面 mWebView.loadUrl("file:///android_asset/index.html"); //TODO JS 调用Android原生 mWebView.addJavascriptInterface(new StartOne(), "test"); }
说明: new StartOne() 启动回调的方法, 这个test是启动 JavaScript回调原生方法的必不可少的,IOS则是不需要这个前缀的。
JavaScript代码
test.startHome
startHome : JavaScript的方法名
android代码
//进入主页 public class StartOne{ @JavascriptInterface public void startHome(final String message) { runOnUiThread(new Runnable() { @Override public void run() { Log.e("MME", message ); startActivity(new Intent(HomeActivity.this, HomeActivity.class)); } }); } }
在android中@JavascriptInterface 下要以JavaScript的方法名命名android的方法名,不然js怎么知道它要调起哪里。
然后执行下看下效果
掉起后的页面
Android原生给JavaScript传值的方法有好多,我写个我常用的方法 =_=!
Android原生给JavaScript传值
js调起android原生,原生android处理一些业务逻辑之后,再把处理完的结果返回给js
android代码
mWebView.loadUrl("javascript:WriteX('"+s+"')");
WriteX 是与js商定的或回传方法
JavaScript代码
js拿到值并回显
更多相关文章
- java/android 使用swig编译c/c++ 代码类型转换
- 在Android Stduio 中使用requestWindowFeature(Window.FEATURE_N
- 在Android java代码中如何改变文件的权限
- Android Studio在线调试Android Framework Java代码
- Android禁止横竖屏和解决切换屏幕时重启Activity的方法
- Android官方DrawerLayout 抽屉式侧滑菜单-简单使用方法
- Android Emulator 模拟器使用方法
- Android心得4.3--SQLite数据库--execSQL()和rawQuery()方法
- Android源代码下载