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图片自动切换效果处理代码
May 07 Javascript
JavaScript中的关键字"VAR"使用详解 分享
Jul 31 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
Aug 02 Javascript
JS的参数传递示例介绍
Feb 08 Javascript
js定义类的几种方法(推荐)
Jun 08 Javascript
探究Vue.js 2.0新增的虚拟DOM
Oct 20 Javascript
javascript中replace使用方法总结
Mar 01 Javascript
简单实现js拖拽效果
Jul 25 Javascript
javaScript中"=="和"==="的区别详解
Mar 16 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
Feb 15 jQuery
vue父组件给子组件的组件传值provide inject的方法
Oct 23 Javascript
javascript实现fetch请求返回的统一拦截
Dec 22 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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
php中取得文件的后缀名?
2012/02/20 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
基于js文件加载优化(详解)
2018/01/03 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
Vue中正确使用Element-UI组件的方法实例
2020/10/13 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
Python中的异常处理学习笔记
2015/01/28 Python
Python 数据结构之队列的实现
2017/01/22 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
python计算n的阶乘的方法代码
2019/10/25 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
八一建军节感言
2014/02/28 职场文书
党的作风建设心得体会
2014/10/22 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
埃及王子观后感
2015/06/16 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
800字作文之大雪
2019/12/04 职场文书