常用的Js调Android方法,以及Android原生传值给Js
16lz
2021-12-04
最近公司弄点这样的需求,我借此机会学习重新温故了一下,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中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用
- python list.sort()根据多个关键字排序的方法实现
- Android零碎知识
- java/android 使用swig编译c/c++ 代码类型转换
- android 使用Intent传递数据之返回结果
- AsyncTask使用和源码解析
- 在Android(安卓)java代码中如何改变文件的权限
- android 神奇的粗体设置
随机推荐
- Android(安卓)的Camera架构介绍
- 对android LinearLayout中layout_weight
- Android:自定义控件你应该知道的这些事_Ty
- android gradle tools 3.X 中依赖,impleme
- android文件系统挂载分析(1)---正常开机
- Material Design:利用RecyclerView CardVi
- android:launchMode="singleTask" 与 onN
- Android开机性能分析工具 Bootchart
- Android(安卓)筆記-Linux Kernel SMP (Sy
- Vue JS 与Android(安卓)webview的交互