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 相关文章推荐
javascript 写类方式之七
Jul 05 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
Apr 25 Javascript
面向对象Javascript核心支持代码分享
May 23 Javascript
Js四则运算函数代码
Jul 21 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
Oct 12 Javascript
Vue如何从1.0迁移到2.0
Oct 19 Javascript
spirngmvc js传递复杂json参数到controller的实例
Mar 29 Javascript
详解React之父子组件传递和其它一些要点
Jun 25 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
May 16 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
Sep 23 Javascript
微信小程序学习之自定义滚动弹窗
Dec 20 Javascript
Bootstrap FileInput实现图片上传功能
Jan 28 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()函数的使用札记
2011/07/03 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
php使用function_exists判断函数可用的方法
2014/11/19 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
javascript插入样式实现代码
2012/02/22 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
canvas轨迹回放功能实现
2017/12/20 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
js实现搜索栏效果
2018/11/16 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
Python FTP操作类代码分享
2014/05/13 Python
python+opencv实现阈值分割
2018/12/26 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
广州一家公司的.NET面试题
2016/06/11 面试题
高中自我鉴定范文
2013/11/03 职场文书
党校学习自我鉴定
2014/02/24 职场文书
2014幼儿园卫生保健工作总结
2014/12/05 职场文书
大学生求职信怎么写
2015/03/19 职场文书
同事离别感言
2015/08/04 职场文书
Python天气语音播报小助手
2021/09/25 Python
MySQL学习之基础命令实操总结
2022/03/19 MySQL
MySQL索引失效场景及解决方案
2022/07/23 MySQL