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 相关文章推荐
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
Dec 11 Javascript
javascript标签在页面中的位置探讨
Apr 11 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
Jun 15 Javascript
jQuery中addClass()方法用法实例
Jan 05 Javascript
jquery获取checkbox的值并post提交
Jan 14 Javascript
js实现双击图片放大单击缩小的方法
Feb 17 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
Feb 11 Javascript
Bootstrap中data-target 到底是什么
Feb 14 Javascript
关于JavaScript中forEach和each用法浅析
Jul 27 Javascript
微信小程序获取循环元素id以及wx.login登录操作
Aug 17 Javascript
JavaScript实现留言板案例
Mar 17 Javascript
基于javascript实现移动端轮播图效果
Dec 21 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的array_multisort()使用方法介绍
2012/05/16 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
YII框架关联查询操作示例
2019/04/29 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
浅谈JavaScript的push(),pop(),concat()方法
2016/06/03 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
关于vue中 $emit的用法详解
2018/04/12 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
Python高效编程技巧
2013/01/07 Python
Python多线程编程简单介绍
2015/04/13 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
Python中安装easy_install的方法
2018/11/18 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
LINUX下线程,GDI类的解释
2016/12/14 面试题
厉行勤俭节约倡议书
2014/05/16 职场文书
2014年班务工作总结
2014/12/02 职场文书
2014年外贸业务员工作总结
2014/12/11 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
人力资源部工作计划
2019/05/14 职场文书
python基础之停用词过滤详解
2021/04/21 Python
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL
Python如何让字典保持有序排列
2022/04/29 Python