当前位置:   article > 正文

JS如何调用Android原生方法_js调用安卓原生方法

js调用安卓原生方法

一、引入 JSBridge

JSBridge 主要是给 JavaScript 提供调用 Native 功能的接口,让混合开发中的前端部分可以方便地使用 Native 的功能(例如:通讯录、蓝牙)。
而且 JSBridge 的功能不止调用 Native 功能这么简单宽泛。实际上,JSBridge 就像其名称中的Bridge的意义一样,是 Native 和非 Native 之间的桥梁,它的核心是构建 Native 和非 Native 间消息通信的通道,而且这个通信的通道是双向的。

二、JS调用Android原生方法

1、增加Javascript的接口:把安卓的相关方法的接口赋值到一个特殊的js对象中,继而赋值给window对象中,比如下面代码块 项目中的PosObj
在这里插入图片描述

private void initJs() {//增加Javascript的接口
        webView.addJavascriptInterface(new MyJSI(this), "PosObj");
    }
  • 1
  • 2
  • 3

2、创建共js调用的方法 一定要加@JavascriptInterface注解
在这里插入图片描述

@JavascriptInterface
    public String invokeFun(String funName, String json) {
}
//通用
@JavascriptInterface 
    public void close() {
 //js调用完以后的逻辑 
 
 }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3、示例:封装获取版本号的方法
在这里插入图片描述

public String getVersionName(Context context) {
        PackageManager packageManager = context.getPackageManager();
        // getPackageName()是你当前类的包名,0代表是获取版本信息
        PackageInfo packInfo = null;
        String version = "";
        try {
            packInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
            version = packInfo.versionName;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return version;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

4、js调用Android方法()//将handleAndroid方法放到需要调用的地方
在这里插入图片描述

    function handleAndroid(){
            // 由于对象映射,所以调用PosObj对象等于调用Android映射的对象
            //getVersionName是Android的方法
            window.PosObj.invokeFun('getVersionName', '')
        }
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/824941
推荐阅读
相关标签
  

闽ICP备14008679号