H5-vue与原生Android、ios交互获取相册图片

第一次写简书,比较忐忑,不足部分望简友批评指正,互相学习!

功能需求:H5页面(vue)和移动端安卓、苹果进行交互,调取原生摄像头或相册上传照片;

需求分析:1.移动端获取H5页面的点击事件 2.移动端进行拍照或者是选取照片上传服务器获得图片路径(h5不用管)3.H5获取移动端传值方法获取图片的路径

下面进行正题

第一步:H5正常定义点击事件

ps:括号中的123参数,是为了区分身份证的正反面,同时也是要传递给移动端的,有参传参,无参不传,下面讲

图1

第二步:在vue的methods中写点击事件方法

1.这里要说明一下,方法里要判断Android、和ios系统,因为,不同的系统,移动端接收的方法不同

2.看2.3处的方法,此处就是移动端接收H5的点击事件的方法,这也是交互的开始,2.3处的方法名是H5和移动端互相商定的名字,一致就可以,此处我是为了避免起更多的方法名,就用了我自定义的点击事件名即mainIdCard(),括号里面的value就是传递给移动端的参数

3.看3处的ios的接收方法格式很好理解就是普通的方法,而Android的接收方法是test.mainIdCard()比较奇特,这也是为什么要判断不同系统的原因了,没关系,我们就按照安卓的格式写吧。(至于为什么是test.而不是其他的,这是看安卓心情的 叫啥都行,如果是handle.那我们就写handle.mainIdCard(value))

4.如果没有参数,括号中就不用写值了,同时也要和移动端讲一下,是否传参,传几个参数


图2

第三步:H5获取移动端返回值

1.最后一步了,想获取移动端给H5的值,就需要再次定义一个获取值方法如下图的getMainImg,此方法也是H5和移动端协商一致的名字,此函数中的res就是移动端返回给H5的值。

2.本来到这里就结束了--------------------,可是我是H5页面用的vue框架,所以这个函数不知道放哪好,也百度了,反正vue的钩子函数都试了下不管用,最后放在了vue的外面详见图4,然后要将返回值再赋值给vue的data中,所以。。。所以就定义了vue的全局变量chin如window.chin=new Vue({}),然后在复制到vue的data中


图3

下面就是全部JS部分的内容

图4

哈哈哈......这就结束了,有不足的地方欢迎各位小伙伴指正更改,同时前端和原生交互也有其他的方法,并不是唯一的,希望以后多多学习!多多进步!



                                                                                                                                                                                                                    渣渣小前端

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • vue概述 在官方文档中,有一句话对Vue的定位说的很明确:Vue.js 的核心是一个允许采用简洁的模板语法来声明...
    li4065阅读 7,299评论 0 25
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,958评论 1 45
  • 【案情】 2015年2月,张某前往某4S店提取自已购买的某牌小型轿车。被告张某当天在4S店的保险公司办理点当场办理...
    小好阅读 329评论 0 2
  • 没有想到我把渡边淳一的化身完整看完了。人物关系简单,没有引人入胜的故事情节,连爱情的主题内容都是这么常见的故事,但...
    我只是空白阅读 347评论 0 0