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.mfbz.cn/a/597385.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电脑c盘太满了,如何清理 电脑杀毒软件哪个好用又干净免费 电脑预防病毒的软件 cleanmymacX有必要买吗 杀毒软件排行榜第一名

杀毒软件通常集成监控识别、病毒扫描和清除、自动升级、主动防御等功能,有的杀毒软件还带有数据恢复、防范黑客入侵、网络流量控制等功能,是计算机防御系统的重要组成部分。 那么,对于Mac电脑用户来说,哪款电脑杀毒软件更好呢&a…

虚幻引擎5 Gameplay框架(二)

Gameplay重要类及重要功能使用方法(一) 配置LOG类及PlayerController的网络机制 探索验证GamePlay重要函数、类的执行顺序与含义 我们定义自己的日志,专门建立一个存放自己日志的类,这个类继承自BlueprintFunctionLibrary 然后…

Prometheus 2: 一个专门评估其他语言模型的开源语言模型(续集)

普罗米修斯的续集来了。 专有的语言模型如 GPT-4 经常被用来评估来自各种语言模型的回应品质。然而,透明度、可控制性和可负担性等考虑强烈促使开发专门用于评估的开源语言模型。另一方面,现有的开源评估语言模型表现出关键的缺点:1) 它们给出的分数与人类给出的分数存在显著差…

[Android]四大组件简介

在 Android 开发中,“四大组件”(Four Major Components)是指构成 Android 应用程序的四种核心组件,它们通过各自的方式与系统交互,实现应用的多样功能。这些组件是:Activity、Service、Broadcast Receiver…

用 node 写一个命令行工具,全局安装可用

现在,不管是前端项目还是 node 项目,一般都会用 npm 做包管理工具,而 package.json 是其相关的配置信息。 对 node 项目而言,模块导出入口文件由 package.json 的 main 字段指定,而如果是要安装到命令行的工具&#x…

28 - 算术运算指令

---- 整理自B站UP主 踌躇月光 的视频 文章目录 1. ALU改进2. CPU 整体电路3. 程序4. 实验结果 1. ALU改进 此前的 ALU: 改进后的 ALU: 2. CPU 整体电路 3. 程序 # pin.pyMSR 1 MAR 2 MDR 3 RAM 4 IR 5 DST 6 SRC 7 A 8 B 9 C 10 D 11 DI 1…

在.NET架构的Winform项目中引入“异步编程”思想和技术

在.NET架构的Winform项目中引入“异步编程”思想和技术 一、异步编程引入(1)异步编程引入背景(2)异步编程程序控制流图(3)异步编程前置知识: 二、异步编程demo步骤1:步骤2&#xff1…

政安晨:【Keras机器学习示例演绎】(三十八)—— 从零开始的文本分类

目录 简介 设置 加载数据IMDB 电影评论情感分类 准备数据 数据矢量化的两种选择 建立模型 训练模型 在测试集上评估模型 制作端到端模型 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨…

在Linux上使用Selenium驱动Chrome浏览器无头模式

大家好,我们平时在做UI自动化测试的时候,经常会用到Chrome浏览器的无头模式(无界面模式),并且将测试代码部署到Linux系统中执行,或者平时我们写个爬虫爬取网站的数据也会使用到,接下来和大家分享…

软考中级-软件设计师(九)数据库技术基础 考点最精简

一、基本概念 1.1数据库与数据库系统 数据:是数据库中存储的基本对象,是描述事物的符号记录 数据库(DataBase,DB):是长期存储在计算机内、有组织、可共享的大量数据集合 数据库系统(DataBas…

python基础---面向对象相关知识

面向对象 可以把数据以及功能打包为一个整体 类: 名称属性(数据)方法 class Person:def __init__(self, name, age):self.age ageself.name namedef print_info:print(self.name, self.age)定义 #经典类 class Dog1:pass# 新式类 class Dog2(object):pass在python3里面这…

LeetCode-741. 摘樱桃【数组 动态规划 矩阵】

LeetCode-741. 摘樱桃【数组 动态规划 矩阵】 题目描述:解题思路一:动态规划,定推初遍举。解题思路二:倒序循环解题思路三:0 题目描述: 给你一个 n x n 的网格 grid ,代表一块樱桃地&#xff0…

VMware虚拟机中Linux系统奔溃,怎么办?

一大早启动虚拟机准备开始工作,却遭遇到Linux系统崩溃,屏幕上显示以下错误提示: 这段文本看起来是来自系统引导时的日志信息,提到了一些关于文件系统的问题和建议。根据这段信息,似乎 /dev/sda1 分区中的文件系统存在一…

红日靶场ATTCK 1通关攻略

环境 拓扑图 VM1 web服务器 win7(192.168.22.129,10.10.10.140) VM2 win2003(10.10.10.135) VM3 DC win2008(10.10.10.138) 环境搭建 win7: 设置内网两张网卡,开启…

SeetaFace6人脸检测C++代码实现Demo

SeetaFace6包含人脸识别的基本能力:人脸检测、关键点定位、人脸识别,同时增加了活体检测、质量评估、年龄性别估计,并且顺应实际应用需求,开放口罩检测以及口罩佩戴场景下的人脸识别模型。 官网地址:https://github.co…

dockerk8s常用知识点

1、什么是docker 容器化和虚拟化对比 ▪开源的应用容器引擎,基于 Go 语言开发 ▪容器是完全使用沙箱机制,容器开销极低 ▪Docker就是容器化技术的代名词 ▪Docker也具备一定虚拟化职能 docker三大核心: Docker Engine: 提供了一个可以用来运行和管…

代码+视频,R语言绘制生存分析模型的时间依赖(相关)性roc曲线和时间依赖(相关)性cindex曲线

ROC曲线分析是用于评估一个因素预测能力的手段,是可以用于连续型变量分组的方法。在生存分析中,疾病状态和因素取值均会随时间发生变化。而标准的ROC曲线分析将个体的疾病状态和因素取值视作固定值,未将时间因素考虑在分析之中。在这种情况下…

edge使用心得

1. **性能提升**:基于Chromium的Edge浏览器在速度和响应方面有显著提升,特别是在处理复杂的网页结构和执行JavaScript代码时。这意味着无论是日常浏览还是运行Web应用程序,都能享受流畅的用户体验。 2. **更好的兼容性**:由于与G…

大模型最新消息

最新消息如下: 大语言模型服务的多样化:互联网上出现了许多免费的大语言模型服务,如OpenAI的ChatGPT、Google的Gemini、Anthropic的Claude、Meta的Llama等。这些服务的推出使得大语言模型的应用更加广泛和便捷。软银和苹果的AI新动向&#x…

​​【收录 Hello 算法】3.3 数字编码

目录 3.3 数字编码 3.3.1 原码、反码和补码 3.3.2 浮点数编码 3.3 数字编码 Tip 在本书中,标题带有 * 符号的是选读章节。如果你时间有限或感到理解困难,可以先跳过,等学完必读章节后再单独攻克。 3.3.1 原码、反码和补码 在…
最新文章