vue与原生app的对接交互的方法(混合开发)

对于vue项目想要和原生app进行对接交互的方法,可以采用混合开发的方式。下面是一些实现的方式和示例说明:

方式一:使用WebViewJavascriptBridge

  1. 引入WebViewJavascriptBridge

在vue项目中引入WebViewJavascriptBridge.js,可以直接在head标签中引入以下代码:

<script src="https://cdn.bootcss.com/WebViewJavascriptBridge/6.0.0/WebViewJavascriptBridge.min.js"></script>
  1. 创建一个WebViewJavascriptBridge实例

在vue项目中需要和原生app进行交互的组件中,可以创建一个WebViewJavascriptBridge对象:

mounted(){
    var that = this
    if (window.WebViewJavascriptBridge) {
      that.bridge = window.WebViewJavascriptBridge
      that.connectWebViewJavascriptBridge(that.bridge)
    } else {
      document.addEventListener('WebViewJavascriptBridgeReady', function () {
        that.bridge = window.WebViewJavascriptBridge
        that.connectWebViewJavascriptBridge(that.bridge)
      },
      false)
    }
},
connectWebViewJavascriptBridge(bridge) {
    bridge.init(function (message, responseCallback) {})
},
  1. 给原生app发送消息

在vue项目中,如果需要给原生app发送消息,可以通过调用jsBridge的send方法来实现:

this.bridge.send(data, function (responseData) {
    //回调函数
});
  1. 接收原生app发送的消息

在vue项目中,如果需要接收原生app发送的消息,可以通过jsBridge的registerHandler方法注册一个名为“jsToH5”的handler,并定义一个用于接收数据的回调方法:

this.bridge.registerHandler("jsToH5", function(data, responseCallback) {
    responseCallback('Response message from js.');
});
  1. 在原生app中调用jsBridge的方法

在原生app中,如果需要调用vue项目中的方法,可以通过jsBridge的callHandler方法来实现,如下所示:

//调用jsBridge的方法
[webViewBridge callHandler:@"handleNativeAction" data:data responseCallback:^(id response) {
//在这里处理收到的消息
}];

例如,可以将原生app中的点击事件通过jsBridge传递到vue项目中,实现以下代码:

webViewBridge.registerHandler('handleWebAction', function(data, responseCallback) {
    if (data.action == 'clickbutton') {
        bridge.send("Button Clicked", function (responseData) {});
    }
});

方式二:使用JavaScriptCore

在vue项目中,可以通过使用JavaScriptCore来实现与原生app的对接交互,具体实现流程如下:

  1. 引入JavaScriptCore

在vue项目中引入JavaScriptCore.js,可以直接在head标签中引入以下代码:

<script src="https://cdn.bootcss.com/JavaScriptCore/4.0.0/JavaScriptCore.min.js"></script>
  1. 注册被原生调用的方法

在vue项目中,需要注册一个被原生调用的方法,并定义一个回调方法来接收原生app发送的消息:

window.webkit.messageHandlers.jsToH5.postMessage({
    msgType: "registerHandler",
    handlerName: "h5Func"
});
window.h5Func = function (data) {
    //处理数据的回调方法
};
  1. 在原生app中调用方法

在原生app中,可以通过调用JavaScriptCore的evaluate方法,将调用请求传递到vue项目中的方法:

JSContext *context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
NSString *funcToCall = [NSString stringWithFormat:@"window.h5Func('%@')", data];
[context evaluateScript:funcToCall];

例如,可以将原生app中的按钮点击事件通过JavaScriptCore传递到vue项目中,实现以下代码:

[webViewBridge registerHandler:@"handleWebAction" handler:^(id data, WVJBResponseCallback responseCallback) {
    if (data) {
        context[@"h5Func"] = ^(){
        [self.webViewBridge callHandler:@"jsToH5" data:data];
    };
}]

通过以上的两种方式,可以实现vue项目和原生app的对接交互,按照实际需求选择合适的方式实现即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue与原生app的对接交互的方法(混合开发) - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue组件化开发的必备技能之组件递归

    来讲解一下“Vue组件化开发的必备技能之组件递归”的完整攻略吧。 什么是组件递归 组件递归是一种将组件自身作为其子组件嵌套的方式,实现组件的无限嵌套。在组件递归中,我们使用自定义组件作为自身的子组件,以形成一个递归的树形结构。组件递归可以帮助我们很好地组织和呈现数据。 组件递归的实现 组件递归的实现主要需要以下几个步骤: 定义组件 首先,我们需要定义一个组件…

    Vue 2023年5月29日
    00
  • 深入理解vue路由的使用

    深入理解 Vue 路由的使用 Vue 的路由是一个非常重要的特性,可以方便地实现单页面应用(SPA),而不需要页面刷新。本文将介绍如何使用 Vue 路由,包括路由的基本使用、动态路由、嵌套路由和路由钩子函数等内容。 基本用法 首先,你需要安装 vue-router 插件: npm install vue-router 然后,在 Vue 项目中使用路由,需要在…

    Vue 2023年5月27日
    00
  • 如何根据业务封装自己的功能组件

    首先,关于如何封装自己的功能组件,一般需要遵循以下几个步骤: 确定功能组件所需的基础数据类型和参数:在组件开发之前,需要确定组件所需要的基础数据类型和参数。这些数据类型和参数应该能够满足组件需要使用和展示的数据。 设计组件的API:根据所需的基础数据类型和参数,设计组件的API。API应该是清晰和易于理解的,并且允许使用者很容易地使用组件。 编写组件的代码:…

    Vue 2023年5月28日
    00
  • 聊聊jenkins部署vue/react项目的问题

    下面我将为你详细讲解如何在Jenkins上进行Vue/React项目的部署,具体攻略如下: 环境准备 安装 Jenkins:根据所部署服务器的操作系统选择相应安装方式,安装 Jenkins 服务。 安装 Node.js:本文以 Node.js 为 JavaScript 运行环境。 安装 NPM:NPM 是 Node.js 的包管理工具,可以用它来引入项目依赖…

    Vue 2023年5月28日
    00
  • vue项目main.js配置及使用方法

    下面是关于“vue项目main.js配置及使用方法”的完整攻略: 什么是main.js 在Vue.js项目中,main.js是一个非常重要的文件,它是Vue.js的入口文件,用于配置Vue.js的基本内容、初始化Vue.js的实例、路由、数据管理等功能,是整个Vue.js应用程序的核心所在。 main.js的配置和使用方法 引入Vue.js main.js文…

    Vue 2023年5月28日
    00
  • VUE脚手架的下载和配置步骤详解

    下面我将为您详细讲解关于VUE脚手架的下载和配置步骤。 什么是VUE脚手架 VUE脚手架是一个基于Node.js的脚手架工具,它可以帮助我们快速搭建Vue项目开发的基础文件夹结构,加速我们的项目开发。VUE脚手架提供了通用的开发环境配置,让我们只需关注自己的项目代码实现。 步骤一:安装Node.js 先要确保您的电脑已经安装了Node.js,如果没有安装,请…

    Vue 2023年5月28日
    00
  • vue.js click点击事件获取当前元素对象的操作

    获取当前元素对象的操作在Vue.js中是非常常见的需求,这个过程很简单,可以使用事件绑定函数和refs属性组合实现。下面是具体的操作细节。 1. 事件绑定函数 在Vue.js中,使用@click指令可以为元素绑定点击事件,当触发点击事件时就会调用相应的函数,如果需要获取当前元素对象,可以为这个事件绑定一个函数,在函数内使用this关键字获取当前的DOM对象。…

    Vue 2023年5月28日
    00
  • vue 路由懒加载详情

    Vue路由懒加载是一种优化技术,可以大幅提高Vue应用程序的性能。当使用Vue路由懒加载时,只有在需要用到相应组件时才会下载其代码。本文将提供Vue路由懒加载的详细攻略,以及两个示例说明。 什么是路由懒加载 Vue是一个单页应用程序框架,使用路由可以在不同页面之间切换。通过路由懒加载,可以优化Vue应用程序的性能,因为当用户进入特定页面时,只有该页面所需组件…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部