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

注册初始化方法JsBridge

javascript 复制代码
//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中引入注册

javascript 复制代码
import JsBridge from '@/static/JsBridge/JsBridge.js';
Vue.prototype.$jsbridge = JsBridge

使用实例

javascript 复制代码
//registerHandler监听事件
this.$jsbridge.registerHandler('test1', (data) => {
				alert(data)
			})

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

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

相关推荐
Xpower 171 分钟前
Codex 桌面端更新后 Chrome 插件和 Computer Use 不可用,怎么排查和修复
前端·人工智能·chrome·python·学习
lolo大魔王1 小时前
Gin 框架响应格式与 HTML 模板渲染完整实战教程
前端·html·gin
llz_1123 小时前
web-第二次课后作业
前端·后端·web
vipbic8 小时前
别再把“做个H5”挂嘴边了:这个词,官方压根就没有定义过
前端
ZC跨境爬虫10 小时前
跟着 MDN 学CSS day_39:(Flexbox 弹性盒子核心机制)
前端·css·ui·html·tensorflow
小陈同学呦10 小时前
前端如何处理订单状态导航的数据竞态问题
前端·javascript
喵个咪10 小时前
GoWind Toolkit 前端代码生成|Vue3(ElementPlus/Vben)、React(AntDesign)全自动一键生成教程
前端·vue.js·react.js
_李小白11 小时前
【android opencv学习笔记】Day 28: 滤波算法之中值滤波器
android·opencv·学习
摆烂大大王12 小时前
玩转 OpenClaw:用 TaskFlow + Heartbeat 打造自动化工作流
前端·人工智能·自动化
zhangxingchao12 小时前
AI 大模型核心六:量化、Workflow 与 Agent、多轮 RAG
前端·人工智能·后端