最近公司弄点这样的需求,我借此机会学习重新温故了一下,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拿到值并回显

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. Android零碎知识
  5. java/android 使用swig编译c/c++ 代码类型转换
  6. android 使用Intent传递数据之返回结果
  7. AsyncTask使用和源码解析
  8. 在Android(安卓)java代码中如何改变文件的权限
  9. android 神奇的粗体设置

随机推荐

  1. Android(安卓)的Camera架构介绍
  2. 对android LinearLayout中layout_weight
  3. Android:自定义控件你应该知道的这些事_Ty
  4. android gradle tools 3.X 中依赖,impleme
  5. android文件系统挂载分析(1)---正常开机
  6. Material Design:利用RecyclerView CardVi
  7. android:launchMode="singleTask" 与 onN
  8. Android开机性能分析工具 Bootchart
  9. Android(安卓)筆記-Linux Kernel SMP (Sy
  10. Vue JS 与Android(安卓)webview的交互