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

ops/2024/10/11 7:28:54/

注册初始化方法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.ppmy.cn/ops/39118.html

相关文章

Python深度学习基于Tensorflow(4)Tensorflow 数据处理和数据可视化

文章目录 构建Tensorflow.data数据集TFRecord数据底层生成TFRecord文件数据读取TFRecord文件数据图像增强 数据可视化 构建Tensorflow.data数据集 tf.data.Dataset表示一串元素(element),其中每个元素包含一个或多个Tensor对象。例如&#xf…

Mac 报错 Zsh: command not found :brew

Mac 安装其他命令时报错 Zsh: command not found :brew终于找到一个能行的,还能够配置国内下载源,记录一下 执行 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"选择一个开始继续执行即可

使用Simulink Test进行单元测试

本文摘要:主要介绍如何利用Simulink Test工具箱,对模型进行单元测试。内容包括,如何创建Test Harness模型,如何自动生成excel格式的测试用例模板来创建测试用例,如何手动填写excel格式的测试用例模板来手动创建测试用例…

如何自动(定时/间隔/重复)执行 同步文件、备份打包加密压缩文件

参考下列两个教程结合使用即可: 快捷自由定时重启、注销、关机 如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包) 就是先设定好 勾选对 来源路径’Zip打包,并…

ASP.NET学生成绩管理系统

摘要 本系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用&#xf…

(数据结构)快速了解时间复杂度和空间复杂度

一、时间复杂度 当计算时间复杂度时,通常需要考虑算法中的循环次数、递归深度等因素。以下是一些常见时间复杂度的示例: O(1):常数时间复杂度,表示算法的执行时间是固定的,与输入规模无关,比如直接访问数组…

C#常用关键字 收藏集

out 作为参数修饰符,它允许按引用而不是按值向方法传递参数。接口和委托的泛型类型参数声明中,该声明指定类型参数为协变。 public void Main(){double radiusValue 3.92781;//计算圆的周长和面积,并将结果返回给 Main().CalculateCircumf…

RabbiMQ-消息可靠性

RabbiMQ消息可靠性 生产者可靠性 生产者重试机制 问题:生产者发送消息时,出现了网络故障,导致与MQ的连接中断 解决: spring:rabbitmq:connection-timeout: 1s # 设置MQ的连接超时时间template:retry:enabled: true # 开启超时…