JS如何调用Android原生方法

这篇具有很好参考价值的文章主要介绍了JS如何调用Android原生方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、引入 JSBridge

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

二、JS调用Android原生方法

1、增加Javascript的接口:把安卓的相关方法的接口赋值到一个特殊的js对象中,继而赋值给window对象中,比如下面代码块 项目中的PosObj
JS如何调用Android原生方法

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

2、创建共js调用的方法 一定要加@JavascriptInterface注解
JS如何调用Android原生方法

@JavascriptInterface
    public String invokeFun(String funName, String json) {
}
//通用
@JavascriptInterface 
    public void close() {
 //js调用完以后的逻辑 
 
 }

3、示例:封装获取版本号的方法
JS如何调用Android原生方法

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;
    }

4、js调用Android方法()//将handleAndroid方法放到需要调用的地方
JS如何调用Android原生方法文章来源地址https://www.toymoban.com/news/detail-514723.html

    function handleAndroid(){
            // 由于对象映射,所以调用PosObj对象等于调用Android映射的对象
            //getVersionName是Android的方法
            window.PosObj.invokeFun('getVersionName', '')
        }

到了这里,关于JS如何调用Android原生方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UniApp 调用 Android SDK 中的原生方法

    UniApp 调用 Android SDK 中的原生方法 在开发移动应用程序时,我们经常需要将 JavaScript 代码和原生代码进行交互。UniApp 是一个跨平台的移动应用框架,可以同时构建 iOS 和 Android 应用程序。本文将介绍如何在 UniApp 中调用 Android SDK 中的原生方法。 创建 Android SDK Module 首先,我们

    2024年02月06日
    浏览(37)
  • js调用android 方法

    客户端

    2024年02月07日
    浏览(32)
  • Vue 组件中如何引入外部的js文件 的10种方法

    在Vue组件的 script 标签中使用 import 语句引入外部的JavaScript文件,适用于单个组件需要使用外部JavaScript文件的情况。这种方法可以在编译时静态地引入外部文件,并且可以通过 import 语句的路径指定具体的文件位置。 在Vue组件的 script 标签中使用 require 方法引入外部的JavaScr

    2024年02月10日
    浏览(47)
  • 【Vue2】引入本地原生JS文件

    日常开发的时候,第一个想法肯定是找现有的插件进行开发,在项目中npm install xxx 插件即可。但是也有无法使用的插件的情况,就需要我们引用我们本地的原生js。 自己写的文件或者别人的插件都可以通过下面的方式修改成vue能够识别的js。 字符操作文件 utils/str.js  在函数

    2024年02月16日
    浏览(47)
  • pywebview 通过 JSBridge 调用 TTS

    pip install pywin32 ; pip install pywebview ; 通过 JSBridge 调用本机 TTS pip install cefpython3 cefpython3-66.1-py2.py3-none-win_amd64.whl (69.0 MB) Successfully installed cefpython3-66.1 编写 pywebview_tts.py 如下 编写 index3.html 如下 web 服务程序参见:  python:mdict + bottle = web 查询英汉词典 记得:将其中 index.html

    2024年02月11日
    浏览(43)
  • 【Android】跨端(JSBridge)安全小计

    移动端漏洞有个比较大的攻击面是: Webview容器安全。 而Webview容器中一个比较重要的攻击面就是: 跨端方法 ,通过Js可以直接调用客户端Native代码。 本文详细介绍android前端到客户端跨端通信的基础知识以及相关漏洞挖掘思路。 当我们要了解跨端(这里指前端和客户端跨端

    2024年02月22日
    浏览(40)
  • 开发Android原生插件,引入自己打的jar报,编译报 Unsupported class file major version 61

    “Unsupported class file major version 61” 错误的原因是由于你自己大的jar包当时是用的Java 17打包的,因为在 Java 中,每个主要版本都有一个对应的 major version 值。例如,Java 8 的 major version 值为 52,Java 9 的 major version 值为 53,以此类推。Java 17 的 major version 值为 61。 解决这个问题,

    2024年02月09日
    浏览(50)
  • Vue3 —— 在vue中动态引入组件以及动态引入js的方法

    文章目录 一 、 动态引入组件 1. 具体写法 二、 动态引入js文件 1. 具体写法 总结 定义一个异步组件,它在运行时是懒加载的。参数可以是一个异步加载函数,或是对加载行为进行更具体定制的一个选项对象。 在大型项目中,我们可能需要拆分应用为更小的块,并仅在需要时

    2024年02月12日
    浏览(52)
  • 【前端】在Vue页面中引入其它vue页面 数据传输 相互调用方法等

    1.this.$emit ,子传父 2.this.$children属性 this.$children返回的是数组 例子: 3.通过this.$refs获取组件 4.this.$parent获取父组件数据 this.$parent返回的是对象,this.$children返回的数组 例子: 需求         在 home.vue 中引用 headView.Vue 方案: home.vue 代码: 只需要在home.vue 想要的地方添加 

    2024年02月07日
    浏览(38)
  • Android引入aar包的方法

    网上参考了许多引入aar包的方法是: 第一步:在build.gradle中的android{}外层添加如下代码 第二步:在dependencies中添加 但是上述方法中的flatDir函数在较新的Gradle版本中移除了,会出现报错,而且官方也不推荐使用上述方法。 第一步:在Module中新建lib文件夹(如果不存在lib文件

    2024年02月21日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包