小程序绑定用户方案优化小结


Posted in Javascript onMay 15, 2019

在做过一系列小程序之后,对小程序的登陆鉴权的流程也有一定的理解,类似于 B 端小程序自不必说,要用户信息手机号地址可以一把梭,做一个引导页面进行判断然后要求用户给与绑定,用户自然不会多说什么,毕竟这是企业级别应用。但是当涉及到 C 端小程序时候。想让用户进行绑定,就势必要给与用户便利。这里我列出一些我觉得较为不错的小程序应用方案以供参考。

预先绑定类

该类小程序在使用之前就需要绑定用户信息。常见于线下门店类功能性小程序。线下操作时有大量的优惠活动来支持小程序的流量。

功能介绍

例如 便利蜂。之前在上海经常使用,价格和优惠都非常不错,这类小程序属于线下功能类小程序,内部有抽奖,付款等一系列功能。该小程序第一次打开就先用户直接要求用户绑定信息和地址,考虑到线下门店都会有一定的店员辅助。所以该小程序的绑定操作实际上用户都是可以接受的。图片如下所示。

小程序绑定用户方案优化小结

技术要点

技术1: 使用自定义导航栏让头部可以配置

全局配置

"window": {
 "navigationStyle": "custom"
}

如果微信 app 的版本在 7.0.0之上,我们就可以使用页面级别的配置了。

{
 "usingComponents": {},
 "navigationStyle": "custom"
}

该配置默认时default,当使用custom时候可以自定义导航,可以在头部配置 loading。

第二种这个需要 app 版本,所以如果是想简化,反而在全局下定义,再使用微信官方的组件 avigation-bar 即可。

技术2:使用小程序骨架屏

骨架屏方案在后端不能很快给与前端数据时候采用这种方案,亦或者前端可以使用 Service Worker 把上次缓存数据返回到前端,等到从后端获取数据之后刷新页面也是一种方案,但是因为这是第一次打开小程序,所以采用骨架屏是一个很好的方法。

采用 小程序骨架屏 组件,如果不需要骨架屏动画效果,可以试试直接加载图片作为骨架屏。

惰性绑定类

该类小程序在展示时无需绑定用户信息,但是当用户进行操作时在询问绑定。常用于线上商城等一系列无需专人引导的用户项目。

功能介绍

基本上线上大部分 c 端小程序都采用此做法,功能上倒是没什么可以介绍的,但是实践上却有不同做法。

实践方式

方式 1: 页面跳转 (京东购物)

在每个需要绑定的按钮上添加跳转逻辑,如果当前小程序没有绑定,可以跳转到另外一个页面上确认授权。

方式2: 按钮控制 (华为商城+)

在每个需要绑定按钮上添加 open-type='getuserinfo',后续可以根据状态变化,切换掉按钮(也可以不切换,因为第二次绑定数据不会跳出组件)。

方式3: 遮罩层拦截 (抽奖助手)

在需要绑定的页面添加一个 透明模态框,增加以整个页面大小的button。用fixed布局,还可以向下滚动。无论在当前页面点击任何地方都会出现需要绑定选项。

组件代码:

// wxml
<view style="z-index: {{zIndex}}" class="mask">
 <button open-type="{{ openType }}"
     bindtap="onClick"
     bindgetuserinfo="bindGetUserInfo"
     bindgetphonenumber="bindGetPhoneNumber"
     bindopensetting="bindOpenSetting"
     binderror="bindError"
     class="mask"/>
</view>

// wxss
.mask{
 position: fixed;
 top: 0;
 bottom:0;
 left:0;
 right:0;
 background-color: inherit;
 opacity: 0;
}

然后在绑定后令 mask 消失。该方案初看起来不是那么的合适,但是仔细想想却也没什么问题,因为用户99%可能点击所需求的按钮,就算点击到按钮之间的空隙之处跳出要求绑定也没有什么问题。

上面方式实际上都没有太大的问题,需要在不同场景下做最合适的选择。

结语

人机交互功能是决定计算机系统“友善性”的一个重要因素。读书学习时候要先把书读厚,再把书读薄,做程序也是一样,如何把系统做的复杂而更加复杂,如何让用户的体验简单而更为简单都不是那么容易的一件事。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js刷新框架子页面的七种方法代码
Nov 20 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
Sep 05 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
Jun 25 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
Jul 05 Javascript
Node.js连接postgreSQL并进行数据操作
Dec 18 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
Dec 24 Javascript
BootStrap表单验证实例代码
Jan 13 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
Aug 16 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
Nov 06 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
Jun 12 jQuery
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
Sep 25 Javascript
Vue Render函数创建DOM节点代码实例
Jul 08 Javascript
pm2发布node配置文件ecosystem.json详解
May 15 #Javascript
JQuery常见节点操作实例分析
May 15 #jQuery
JS算法题之查找数字在数组中的索引位置
May 15 #Javascript
JQuery属性操作与循环用法示例
May 15 #jQuery
前端js中的事件循环eventloop机制详解
May 15 #Javascript
mpvue小程序循环动画开启暂停的实现方法
May 15 #Javascript
微信小程序的tab选项卡的实现效果
May 15 #Javascript
You might like
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
2016/05/28 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
Python 异常处理的实例详解
2017/09/11 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
Python列表(List)知识点总结
2019/02/18 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
python 通过文件夹导入包的操作
2020/06/01 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
大学生2014全国两会学习心得体会
2014/03/10 职场文书
劳动竞赛活动总结
2014/05/05 职场文书
考察现实表现材料
2014/05/19 职场文书
小学课外阅读总结
2014/07/09 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
2014年资料员工作总结
2014/11/18 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android
vue实现移动端div拖动效果
2022/03/03 Vue.js
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS