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插件分享
May 22 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
Aug 30 Javascript
jQuery实现简单的列表式导航菜单效果代码
Aug 31 Javascript
jQuery实用技巧必备(上)
Nov 02 Javascript
js中substring和substr两者区别和使用方法
Nov 09 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
Apr 26 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
Oct 10 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
Aug 08 jQuery
vue 全选与反选的实现方法(无Bug 新手看过来)
Feb 09 Javascript
微信小程序实现分享朋友圈的图片功能示例
Jan 18 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
Nov 09 Javascript
解决vue项目本地启动时无法携带cookie的问题
Feb 06 Vue.js
三步搞定: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
phpQuery占用内存过多的处理方法
2013/11/13 PHP
php命令行用法入门实例教程
2014/10/27 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
php限制ip地址范围的方法
2015/03/31 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
Javascript var变量隐式声明方法
2009/10/19 Javascript
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
2016/08/18 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python文件处理
2016/02/29 Python
python 调用c语言函数的方法
2017/09/29 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
Python中fnmatch模块的使用详情
2018/11/30 Python
对python生成业务报表的实例详解
2019/02/03 Python
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
2013/07/26 面试题
Ruby如何创建一个线程
2013/03/10 面试题
安全标准化实施方案
2014/02/20 职场文书
三八节标语
2014/06/27 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记
python中redis包操作数据库的教程
2022/04/19 Python
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers