Vue.js暴露方法给WebView的使用操作


Posted in Javascript onSeptember 07, 2020

新建一个外部公共的js文件app.js,定义一个对象并输出,如下:

var hybrid = { 
}
 
window.Hybrid = hybrid
 
if (window.Vue) {
 window.Vue.use(hybrid)
}
 
export { hybrid }

在需要的文件中引入app.js或者在main.js引入app.js,如下(引入到main.js):

import { hybrid } from './common/app'

Vue.prototype.$hybrid = hybrid

将需要暴露的方法赋给hybrid对象,如下:

Vue.js暴露方法给WebView的使用操作

补充知识:将Vue项目methods中的方法暴露在window上

我是一个H5,咱们在写APP的时候,也就是APP内部嵌套咱们H5代码的时候,肯定会遇到交互问题,如果使用普通html js css的话应该没有什么太大的问题,因为普通js方法都是暴露在window上面的,就我们公司的APP,使用回调的时候会在window上面找H5回调方法,

代码这个样子的

mounted() {
   // 将backToday方法绑定到window下面,提供给外部调用
   let me = this;
   window['logoClickBtn'] = (url) => {
     // Toast({ message: url, position: 'bottom', duration: 5000 });
     me.logoClickBtn(url)
   }
 },

然后我写一下大概步骤是啥样的 ,不然你只知道这样写,但是上一步的操作是什么

Vue.js暴露方法给WebView的使用操作

这方法肯定有触发条件,再触发的时候将参数进行传入,与APP对接成功之后,会将再次调用咱们的函数也就是callBack,

我项目中是因为要是有手机中的拍照与手机图片上传,在咱们的页面中应该是这个样子的在这里插入图片描述

Vue.js暴露方法给WebView的使用操作

代码是这个样子的

Vue.js暴露方法给WebView的使用操作

Vue.js暴露方法给WebView的使用操作

当与APP对接成功之后就会调用咱们传过去的方法名了,但是APP端调用咱们的方法都是绑定在window上面的方法,故咱们应该讲咱们的方法暴露在window上面,因为Vue项目中的this指向vue,而不是window,

代码是这个样子的

mounted() {
     // 将backToday方法绑定到window下面,提供给外部调用
     let me = this;
     window['logoClickBtn'] = (url) => {
       me.logoClickBtn(url); // 这个也就是我定义的方法
     }
   },

这一步是什么呢?就是APP会给咱们上传的图片的一个路径,然后使用这个路径在进行下一步操作,也就是

logoClickBtn(url) {
     this.form.logo = url; // 进行数据驱动试图
   },

然后咱们的页面上就会有图片了

Vue.js暴露方法给WebView的使用操作

因为服务没有开,所以就不展示了 哈哈,这个步骤是可以走通的。

以上这篇Vue.js暴露方法给WebView的使用操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 第二课 操作包装集元素代码
Mar 14 Javascript
JavaScript/jQuery 表单美化插件小结
Feb 14 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
Aug 01 Javascript
jQuery实现Tab菜单滚动切换的方法
Sep 21 Javascript
微信小程序Flex布局用法深入浅出分析
Apr 25 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
Jun 22 Javascript
node爬取新型冠状病毒的疫情实时动态
Feb 06 Javascript
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
Angular+ionic实现折叠展开效果的示例代码
Jul 29 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
Jan 07 Vue.js
Vue 实例中使用$refs的注意事项
Jan 29 Vue.js
(开源)微信小程序+mqtt,esp8266温湿度读取
Apr 02 Javascript
三步搞定:Vue.js调用Android原生操作
Sep 07 #Javascript
vue单应用在ios系统中实现微信分享功能操作
Sep 07 #Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
Sep 07 #Javascript
一篇文章带你从零快速上手Rollup
Sep 07 #Javascript
基于vue hash模式微信分享#号的解决
Sep 07 #Javascript
在项目vue中使用echarts的操作步骤
Sep 07 #Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
Sep 07 #Javascript
You might like
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
php fsockopen解决办法 php实现多线程
2014/01/20 PHP
PHP使用静态方法的几个注意事项
2014/09/16 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
2009/05/25 Javascript
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
JavaScript必看小技巧(必看)
2016/06/07 Javascript
EsLint入门学习教程
2017/02/17 Javascript
JavaScript 异步调用
2017/10/25 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
Python格式化压缩后的JS文件的方法
2015/03/05 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
2018/04/18 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
django框架auth模块用法实例详解
2019/12/10 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
总经理助理的职责
2014/03/14 职场文书
土建工程师岗位职责
2014/06/10 职场文书
物业管理专业求职信
2014/06/11 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
Python 实现Mac 屏幕截图详解
2021/10/05 Python