当前位置: 首页 > news >正文

web页面与原生android通信,调用原生android方法

注册初始化方法JsBridge

//JS注册事件监听
function connectWebViewJavascriptBridge(callback) {if (window.WebViewJavascriptBridge) {callback(WebViewJavascriptBridge)} else {document.addEventListener('WebViewJavascriptBridgeReady',function() {callback(WebViewJavascriptBridge)},false);}
}//Android主动发送消息给JS:无方法名
connectWebViewJavascriptBridge(function(bridge) {//初始化bridge.init(function(message, responseCallback) {var data = {'Javascript Responds': '我是JS的回复消息'};responseCallback(data);});//Android->签名图片bridge.registerHandler("test1", function(data, responseCallback) {var responseData = "666";responseCallback(responseData);});
})export default {registerHandler: function(name, fun) {connectWebViewJavascriptBridge(function(jsbridge) {//Android调用js方法:functionInJs方法名称需要保持一致 ,并返回给Android通知jsbridge.registerHandler(name, function(data, responseCallback) {responseCallback(fun(data));});})},callHandler: function(name, data, fun) {connectWebViewJavascriptBridge(function(jsbridge) {//JS调用Android方法:接收Android传递过来的数据,并做处理jsbridge.callHandler(name, data, function(data) {fun(data);});})}
}

在main.js中引入注册

import JsBridge from '@/static/JsBridge/JsBridge.js';
Vue.prototype.$jsbridge = JsBridge

使用实例

//registerHandler监听事件
this.$jsbridge.registerHandler('test1', (data) => {alert(data)})//callHandler触发事件
this.$jsbridge.callHandler('test2', {'data': "123"}, (data) => {alert(data)})

注意!!!监听事件需要在初始化方法JsBridge中注册才能使用

http://www.lryc.cn/news/345045.html

相关文章:

  • Linux的编译器
  • redis--安装
  • 魔法程序员的奥妙指南:Java基本语法
  • SpringMVC传递参数
  • 【Scala---04】函数式编程 『 函数 vs 方法 | 函数至简原则 | 函数式编程』
  • [华为OD] B卷 树状结构查询 200
  • 基于机器学习的学生学习行为自主评价设计与实现
  • toml与json联系对比
  • (已解决)org.springframework.amqp.rabbit.support.ListenerExecutionFailedException
  • 基于FPGA的数字信号处理(9)--定点数据的两种溢出处理模式:饱和(Saturate)和绕回(Wrap)
  • 基于STM32的宠物箱温度湿度监控系统毕业设计
  • Linux sudo 指令
  • 【NumPy数组】:深入了解numpy.linspace()函数
  • 计算机网络实验二:交换机的基本配置与操作
  • 宏的优缺点?C++有哪些技术替代宏?(const)权限的平移、缩小
  • 2024数维杯数学建模选题建议及各题思路来啦!
  • centos的常用命令
  • 【Android】使用Handler实现一个定时器
  • Java | Leetcode Java题解之第80题删除有序数组中的重复项II
  • java后端15问!
  • OmniPlan Pro 4 for Mac中文激活版:项目管理的新选择
  • 二叉树的广度优先遍历 - 华为OD统一考试(D卷)
  • 代码随想录-算法训练营day31【贪心算法01:理论基础、分发饼干、摆动序列、最大子序和】
  • 如何使用Transformer-TTS语音合成模型
  • 【Python】JSON数据的使用
  • C语言头文件的引入使用<>和““有什么区别
  • Qt 类的设计思路详解
  • 五一超级课堂---Llama3-Tutorial(Llama 3 超级课堂)---第一节 Llama 3 本地 Web Demo 部署
  • Redis20种使用场景
  • vue3获取原始值