美狗日哈最可恨 發表於 2021-9-28 16:08:00

uni-app 开发各平台(微信小程序,支付宝小程序)踩坑记录

<p>因为公司有微信小程序、支付宝小程序、微信公众号、支付宝生活号、app内嵌H5等页面,而且这几端的功能是一样的,所以采用Uni-app进行开发。这里遇到的坑主要是在微信和支付宝小程序时遇到的坑进行记录。</p>
<p><span style="font-size: 16px"><strong>1、授权</strong></span></p>
<p>&nbsp; &nbsp; &nbsp;<img src="https://img2020.cnblogs.com/blog/1109025/202109/1109025-20210928144414806-1092020256.png"></p>
<p id="1632811454741">&nbsp; &nbsp; &nbsp; &nbsp;获取用户信息的接口,只支持微信小程序,不支持支付宝小程序,所以支付宝小程序要自己调用支付宝自己的接口。</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp;我们可以通过 my.getOpenUserInfo()&nbsp;方法获取支付宝用户信息</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp;而且 html&nbsp;部分我们也需要设置 open-type为 getAuthorize&nbsp;并且&nbsp;使用 getAuthorize&nbsp;方法调用</p>
<p>  <img src="https://img2020.cnblogs.com/blog/1109025/202109/1109025-20210928151646315-1563458772.png"></p>
<p id="1632811370206">&nbsp;<span style="font-size: 16px"><strong>2、获取用户手机号</strong></span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; html 部分也需要不同处理</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img src="https://img2020.cnblogs.com/blog/1109025/202109/1109025-20210928152019326-1066461106.png"></p>
<p id="1632813619308">&nbsp;  微信小程序可以直接获取到手机号信息,支付宝则需要通过 my.getPhoneNumber&nbsp;拿到用户手机号信息。(支付宝在后台添加获取手机号能力时,申请&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;一定要把获取手机号的用途写清楚。)  </p>
<p>&nbsp;3<strong>、图片组件</strong></p>
<p>  使用uni-app image&nbsp;组件时,微信小程序没有问题。支付宝小程序会把 image&nbsp;组件替换成 label&nbsp;并把图片作为背景图片。image&nbsp;组件的&nbsp;mode&nbsp;属性如果&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;不设置值会导致图片显示不全,需要将此属性设置成 ”aspectFit“。</p>
<p>4<strong>、地图组件</strong></p>
<p>&nbsp; &nbsp; &nbsp; a.路况信息</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:enable-traffic="traffic"&nbsp; 我们是在map&nbsp;组件上通过&nbsp;traffic&nbsp;值来判断是否开启路况信息。</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;微信小程序直接吧traffic设置成 true 或着 false&nbsp;就可以开启、关闭路况了。</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;支付宝则需要通过地图实例的&nbsp;updateComponents&nbsp;方法,&nbsp;通过传入&nbsp;setting&nbsp;的&nbsp;trafficEnabled&nbsp;值来改变,而且&nbsp;trafficEnabled&nbsp;传入&nbsp;true /&nbsp;false&nbsp;不管用,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;我是传入的 1、0</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img src="https://img2020.cnblogs.com/blog/1109025/202109/1109025-20210928154650936-1984199881.png"></p>
<p id="1632815210876">&nbsp; &nbsp; &nbsp;b、markers 点</p>
<p>   <img src="https://img2020.cnblogs.com/blog/1109025/202109/1109025-20210928155414136-492823091.png"></p>
<p id="1632815654141">&nbsp;</p>
<p> </p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;微信小程序在渲染 marks&nbsp;和改变 marker&nbsp;大小等状态时,直接改变 marker 就可以。支付宝则需要调用 updateComponents&nbsp;方法重新渲染,如果直接&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;改变 marker 点,地图会重新回到了初始位置。</p>
<p>   &nbsp;&nbsp;<img src="https://img2020.cnblogs.com/blog/1109025/202109/1109025-20210928155738081-1258228206.png"></p>
<p id="1632815858088">&nbsp;5<strong>、富文本显示</strong></p>
<p id="1632815131188">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;微信小程序直接使用 v-html&nbsp;就可以了,需要将 img&nbsp;设置成 width:100%,&nbsp;支付宝小程序则需要引入组件才能显示。</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img src="https://img2020.cnblogs.com/blog/1109025/202109/1109025-20210928160444030-792477709.png"></p>
<p id="1632816283994">&nbsp;</p>
<p>虽然 uni-app 在不同端会有略微差异,整体来说对于开发来说还是比较省事的,我们现在一套代码&nbsp;支持微信小程序,支付宝小程序,支付宝生活号、微信公众号、APP内嵌H5,给我们节省了不少开发时间。</p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/zpxm/p/15348436.html
頁: [1]
查看完整版本: uni-app 开发各平台(微信小程序,支付宝小程序)踩坑记录