前端的多端适配-硬件接口篇
我们在多端开发的时候经常会遇到硬件接口的坑,比方调用扫一扫。h5网页要扫一扫,小程序要扫一扫,app也要扫一扫。
我们 正常都是一边开发,一边h5端网页调试。但是h5端根本没有办法扫一扫啊?没有支付啊?没有gps定位啊?这个时候我们需要自己定义模拟方案,一般像uniapp有一些推荐方案,但是很多时候我们还是要自己动脑经,走出一条属于自己公司的技术方案。
比方扫一扫,h5端我就会是这样的
<view class="my_saoyisao_all" v-if="my_saoyisao_display==true"> <view class="my_saoyisao_body"> <view class="my_saoyisao_one" @click="saoyisao_shexiangtou()" v-if="in_app==true"> 摄像头扫码 </view> <view class="my_saoyisao_one" @click="saoyisao_wenjian()" style="background: #007AFF;"> 从文件扫码 </view> <view class="my_saoyisao_one" style="background: rgba(255,255,255,0.4); margin-top: 14vw;" @click="saoyisao_close()"> 取消 </view> </view> </view>
,saoyisao(success,fail) { if(!fail) { var fail=function(){ console.error('扫码出现异常'); } } //#ifdef H5 window.saoyisao_success=success; this.saoyisao_open(success); //#endif //#ifndef H5 uni.scanCode({ success: function (res) { if(res.result) { success(res.result); }else{ fail(); } }, fail:function(){ fail(); } }); //#endif }
通过//#ifdef H5 //#endif 等等标记位控制每种平台的代码。
这些硬件接口,都可以写一个接口,甚至可以一个输入框,一个确定按钮,把需要模拟的数据提交过去也行。