针对基础库更新的处理
在任何一个平台开发项目,都或多或少受限,随时需要关注平台API更新和官方公告。最近项目就针对小程序官方公告提到的基础库更新做了新的版本迭代。下面这张图是最近小程序
工具更新
一、小程序互推改进
之前小程序互推一文有介绍互推的条件,并以项目代码展示如何实现。最近小程序废弃了 wx.navigateToMiniProgram 接口,该用 navigator 组件实现,按照开发文档 navigtor页面链接,我对项目 more.wxml 文件做了如下调整:
<view class='moreContainer'>
<!-- <view bindtap='more' data-appid='{{allApps[index].appID}}' wx:for="{{allApps.length}}" wx:key="{{index}}" wx:if="{{allApps[index].appID != curAppID}}"> -->
<navigator target="miniProgram" open-type="navigate" app-id='{{allApps[index].appID}}' wx:for="{{allApps.length}}" wx:key="{{index}}" wx:if="{{allApps[index].appID != curAppID}}" version="release">
<image src='{{allApps[index].image}}'></image>
<view>
<text class='title'>{{allApps[index].title}}</text>
<text class='content'>{{allApps[index].desc}}</text>
</view>
</navigator>
<!-- </view> -->
</view>
同时为方便以后公司每开发上线一个小程序,及时更新互推列表,将公司开发的所有小程序放在同一个公众号下,并后台(服务端)配置好allApps数组(即每个小程序appID、icon、title、desc等信息的数组),通过网络请求获取列表数据,并前端过滤当前小程序展示并实现小程序跳转。
PS:如果对于公众号绑定小程序规则不清楚的,可以查看这个链接:公众号、小程序、open绑定规则Q&A
二、授权处理
早之前写过一篇文章用户授权拒绝处理方案,介绍颜值招聘小程序是如何处理授权问题的。但微信对于授权获取用户信息API做了调整,所以用户授权拒绝处理方案 中提到的使用view实现绑定事件处理授权不可行。另外小程序又新增了 open-type 为 openSetting 打开授权设置页。所以我的处理方案思路如下:
按照服务器是否需要获取并保存用户信息将实现方案分为两类:
1、服务器不需要保存用户信息:
既然用户信息只做展示,完全可以采用另一种最为直接的方式获取用户信息,即用组件<open-data></open-data>方式显示,如下:
<view class="userinfo">
<open-data class="userinfo-avatar" type="userAvatarUrl"></open-data>
<open-data class="userinfo-nickname" type="userNickName"></open-data>
</view>
这种情况只负责数据展示,无法真正获取到用户信息,更无法操作用户数据。当然这种在颜值招聘小程序不适应,和我们的需求相违背,接着看第二种类型,即服务器需要保存获取到的用户数据,并对之进行操作如更新用户数据表。
2、服务器需要保存获取到的用户信息:
在页面绑定一个button并设置open-type=“getUserInfo”,可以保证未授权情况下每次点击按钮都能弹出授权用户信息,这也是用户授权拒绝处理方案提到都另一种实现方案。这种方案,唯一的要求就是必须依赖button组件并设置open-type=“getUserInfo”。
PS:关于获取用户信息想要了解更多,可以参考获取用户信息接口优化调整
三、iOS禁止虚拟支付
5月份微信官方发布了“关于小程序含有未开放内容(虚拟支付)的整改通知”。公告中表示:基于微信小程序平台运营规范,除小游戏类目的安卓内购功能,小程序暂不支持虚拟支付。请开发者们对当前小程序内含有虚拟支付的内容或服务进行排查并整改。如在5月8日前未完成整改,平台将对账号屏蔽iOS系统的支付接口调用。
因为项目中涉及到支付这一业务,需要紧急处理。主流的处理方案有:
1、引导进公众号充值,但不得使用明确的文字,引导用户进入公众号
2、跳转H5页面进行充值,但风险很大
3、将虚拟变实体,转嫁性质
综合多方面原因,我们选择来方案1,当用户点击充值,做了系统判断,安卓走正常但支付流程,iOS则进入一个新的引导页面,引导用户关注公众号进行充值。
四、取消转发回调
虽然不是很确定微信做这一改进,是不是因为市面很多小程序和小游戏诱导分享以获取红包或续命导致,微信想封杀分享回调,让开发者无法判定转发是否有效~这只是我的个人猜测,如果有知道的可以留言告诉我哦。
针对这个调整,目前对我们的项目和产品方向尚未造成问题,所以不介意也不需要处理判定转发有效,等到需要的时候,估计也只能摊手,换其他业务方案咯~
暂且写到这吧,下班和同事约海底捞,吃还是很重要滴~~~