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 相关文章推荐
JS OOP包机制,类创建的方法定义
Nov 02 Javascript
Jquery AJAX POST与GET之间的区别
Nov 14 Javascript
理解 JavaScript Scoping & Hoisting(二)
Nov 18 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
Dec 31 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
Sep 07 Javascript
从零开始搭建vue移动端项目到上线的步骤
Oct 15 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
Mar 14 Javascript
JavaScript怎样在删除前添加确认弹出框?
May 27 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
Sep 16 Javascript
JavaScript实现动态留言板
Mar 16 Javascript
ES6 async、await的基本使用方法示例
Jun 06 Javascript
JS实现页面侧边栏效果探究
Jan 08 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
在线竞拍系统的PHP实现框架(一)
2006/10/09 PHP
php escape URL编码
2008/12/10 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
javascript中对对层的控制
2006/12/29 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
Python秒算24点实现及原理详解
2019/07/29 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
阿里云:Aliyun.com
2017/02/15 全球购物
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
PHP面试题大全
2015/10/16 面试题
Ajax的工作原理
2015/12/04 面试题
优秀应届生推荐信
2013/11/09 职场文书
保安员岗位职责
2013/11/17 职场文书
打架检讨书50字
2014/01/11 职场文书
金榜题名主持词
2015/07/02 职场文书
课题研究阶段性总结
2015/08/13 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js