(转)Vue 与原生 App 跨端通信:安卓、iOS、鸿蒙通用方

2025-08-31  本文已影响0人  缘之空_bb11

原博主地址

在混合开发中,Vue 页面与原生 App 的通信是绕不开的核心需求。无论是原生调用 Vue 方法,还是 Vue 触发原生功能,都需要一套清晰的通信机制。今天就为大家梳理一套适用于安卓、iOS、鸿蒙三大平台的通用方案,附具体实现代码。

一、原生 App 如何调用 Vue 方法?

要让原生 App 能调用 Vue 中的方法,关键是将 Vue 方法挂载到 window 对象上,让原生端可以直接访问。

1. Vue 端:定义方法并暴露到 window
在 Vue 组件中,先定义需要被原生调用的方法,然后挂载到 window 全局对象:

// 定义供原生调用的方法
const appToVueFn = (param) => {
  console.log('收到原生传递的参数:', param);
  // 处理逻辑:如更新页面数据、触发组件方法等 
  // 可选:返回数据给原生   
  return {
    status: 'success', data: 'Vue 已处理'
  };
  // 挂载到 window,供原生调用
  window.appToVueFn = appToVueFn;
  1. 原生端调用方式


    06a43844-fcc2-4d2c-868a-3c7b4aa45829.png
0fb5f8a8-ae0f-4b4f-8b45-d7693fd09b97.png 1170c76b-1ca0-454f-ae03-cd075062bac8.png
二、Vue 如何调用原生 App 方法?

Vue 调用原生方法的核心是:原生端先注册一个全局接口,Vue 端通过 window 访问该接口。

07fe4202-31c3-4a4c-af11-a109ab5be401.png 04c5fa39-eada-4ce9-b7aa-933a0231453e.png ac88a815-9f2f-4301-bb8c-6c207ca9b3a3.png 0e707ed8-45b2-4f8b-961a-daf06b5a34c3.png
三、关键注意事项
  1. 参数传递规范
    建议始终使用 JSON 字符串传递参数(JSON.stringify/JSON.parse),避免因数据类型差异(如数组、对象)导致解析错误。

  2. 安全限制

  1. 兼容性处理
    不同平台的 UserAgent 可能存在差异,建议在实际项目中通过更精确的规则判断平台。
上一篇 下一篇

猜你喜欢

热点阅读