【环球热闻】微信小程序开发 - 第5章 API应用案例(上)
5.1【案例1】用户登录
5.1.1 案例分析
==用户登录==是微信小程序必不可少的环节,一个完整的登录功能还包括用户的信息获取、登录的状态判定等。下图为未登录和已登录页面效果图。
5.1.2 前导知识
小程序通过微信官方提供的,获取微信提登录能力供的用户身份标识,建立用户体系。==用户登录流程==时序图(下图所示):
(资料图片仅供参考)
用户登录流程需要小程序、开发者服务器和微信接口服务3个角色的参与,
下面介绍这3个角色的==作用==:
登录流程==具体细节==:
小程序获取code。小程序将code发送给开发者服务器。开发者服务器通过微信接口服务校验登录凭证。开发者服务器自定义登录态。==数据缓存==:缓存数据,从而在小程序退出后再次打开时,可以从缓存中读取上次保存的数据,常用的==数据缓存API==如下表所示:
保存数据缓存示例代码如下:
获取缓存数据示例代码如下:
5.1.3 搭建开发者服务器
本节选择使用Node.js搭建开发者服务器,安装Node.js,==创建项目==:
初始化项目,将会自动创建package.json配置文件。安装Express框架和request模块。安装nodemon监控文件修改(如果已经安装则跳过此步)。执行上述命令后,在项目目录下创建==index.js==文件,编写代码如下:
引入Express框架和request模块,配置appid和secret。模拟数据库。请求登录接口,校验登录凭证的微信接口URL地址。处理判断语句代码。暴露对外访问接口地址。保存上述代码后,执行如下命令,启动开发者服务器。
5.1.4 实现用户登录
创建一个空白项目,在app.js文件中编写代码,实现小程序启动时自动执行登录操作。
请求login登录接口。
执行上述代码,控制台中打印出login code和token的值。
在开发者服务器的控制台中,打印出login code和session的值。
5.1.5 检查用户是否已经登录
==注意==:
判断数据缓存中是否存在token如果存在,取出数据缓存中的token值,不用再执行登录操作。需要注意的是,token有可能会过期,需要重新登录,这就需要从数据缓存中取出token后,先验证token是否过期,再使用token。
进入app.js中编写checkLogin()函数,判断token是否存在。
如果token存在,判断token是否有效。
修改app.js中onLaunch()函数,用于在小程序启动后检查用户是否已经登录,如果没有登录则执行登录操作。
5.1.6 获取用户信息
==获取用户信息==的两种常用方式如下:
使用< open-data>组件的方式。单击按钮提示授权的方式。使用< open-data>组件来获取==特点==:不需要用户授权,可以直接显示用户的头像、昵称、性别等,适合只用来展示信息的情况。单击按钮提示授权的方式
==用法==:如果“!hasUserInfo”值为true,表示没有获取到用户信息,显示“获取头像昵称”按钮;如果值为false,则将用户信息显示在页面中。
==用法==:在app.js文件的onLaunch()函数中,编写如下代码,在下次启动时判断是否已经授权。
==用法==:在app.js文件的globalData中增加userInfo,编写如下代码。
==调用==:在其他页面通过app.globalData.userInfo获取到用户信息。
5.1.7 开放数据校验与解密
==使用场景==:开发者服务器想要获取用户信息,需要在小程序端通过
wx.request()请求来获取。
==使用弊端==:无法辨别数据的真伪。
==解决办法==:利用小程序提供的开放数据的校验和解密机制。
5.2【案例2】个人中心
5.2.1 案例分析
个人中心案例设计了两个标签页,“首页”展示个人的基本信息及简单的自我介绍;“个人中心”底部标签页==任务需求==如下:
==展示个人资料==:展示头像、昵称、性别等信息。
==订单物流查询==:输入订单号和快递公司查询物流信息。
==选择收货地址==:调用开放接口,访问系统收货地址,进行选择。
==客服联系电话==:调用开放接口, 访问通讯录,拨打客服电话。
同时设计两个标签页,通过这两个标签页来实现页面之间的跳转。
==任务需求==如下:
页面效果图:
5.2.2 前导知识
wx.switchTab(只能跳转到tabBar页面,并关闭其他所有非tabBar页面)==wx.switchTab常用属性==:wx.navigateTo(跳转到应用内的某个页面,且保留当前页面)wx.redirectTo(跳转到应用内的某个页面,且关闭当前页面)
==wx. navigateTo、wx.redirectTo常用属性==:wx. reLaunch(关闭所有页面,打开到应用内的某个页面。既能跳转到标签页,又能跳转到非标签页)wx.chooseImage() 从本地相册选择图片或使用相机拍照wx.chooseAddress()调起用户编辑收货地址原生界面wx.makePhoneCall()调起用户通讯录,拨打电话
5.2.3 实现底部标签页切换
在“首页”中单击头像上方提示语“点我跳转”,进入到 “个人中心页面”;这两个页面都属于tabBar页面,所以使用wx.swichTab或者wx.reLaunch方式。
在app.js文件,配置tabBar在index.wxml文件,为头像绑定changeImage()函数在index.js文件,编写changeImage()函数5.2.4 编辑个人资料
进入详情页上传头像进入修改资料详情页单击“修改资料按钮”进入个人资料修改页提交表单5.2.5 订单物流查询
在本任务中,将会实现订单物流查询功能,在“个人中心”页单击“订单物流查询”跳转到 pages/order/order“订单查询”页面。
==功能需求==如下:
5.2.6 选择收货地址
在本任务中,将会实现选择收货地址功能,在“个人中心”页单击“选择收货地址”跳转到 pages/address/address “收货地址”页面。
==功能需求==如下:
5.2.7 客服联系电话
在本任务中,将会实现拨打电话功能。
==功能需求==如下:
5.3【案例3】天气预报查询
5.3.1 案例分析
天气查询小程序,可以查询今日的天气状况,实时温度等信息。
==功能需求==如下:
5.3.2 前导知识
wx.request 发起HTTPS网络请求,一个小程序,同时只能有5个网络请求连接
5.3.3 动态获取输入的城市名
5.3.4 请求天气接口数据
5.3.5 渲染界面展示数据
5.4【案例4】查看附近的美食餐厅
5.4.1 案例分析
该案例使用腾讯地图SDK,配合地图组件和API进行调用,实现查看附近的美食餐厅小程序。
==功能需求==如下:
页面效果图:
5.4.2 前导知识
腾讯地图SDK接入。申请开发者密钥。下载微信小程序JavaScriptSDK。登录微信公众平台,设置request合法域名。引入SDK核心代码。wx.getSystemInfo()获取设备的高度和宽度,示例代码如下:markers标记点,示例代码如下:controls 地图显示控件,示例代码如下:5.4.3 设计地图界面
5.4.4 单击控件回到中心点
5.4.5 视野变化获取中心点坐标
总结
本章介绍了微信小程序中的API功能,包括使用小程序开放接口获取用户的信息、授权登录、添加用户收货地址,调起相机、相册选择图片等,同时也使用腾讯地图插件SDK定位附近的美食餐厅。根据POST和GET两种请求方式,介绍了不同数据类型之间的转换规则。学习本章后,读者需要掌握小程序中常用的API方法,熟练地进行与服务器的数据交互,实现项目产品需求。
关键词:
推荐阅读
人工饲养白犀牛可以吗?白犀牛不白为何叫白犀牛?
人工饲养白犀牛可以吗?去年8月,一组国际科学家和兽医从他们那里获得了卵子。该小组将尝试人工授精雄性白犀牛的冷冻精子,然后将其植入南白 【详细】
库克称苹果永远不会垄断 苹果不会垄断什么?
库克称苹果永远不会垄断当地时间9月21日,当库克在节目中谈到对苹果等科技巨头的反垄断调查时,他说,大公司应该受到审查,这不仅是因为公 【详细】
福特野马怎么样?多少钱可以养一辆野马?
福特野马怎么样?第一代野马于1964年正式上市,长车头、短车尾、双门四座的设计布局也成为未来野马的标志性元素,嵌入马徽标的独特进气格栅 【详细】
美国将科学家送往国际空间站 NASA开放空间站的商业化怎么回事?
美国将科学家送往国际空间站美国宇航局正在考虑将超专业科学家派往国际空间站,与职业宇航员一起工作。这个想法绝不是新的,因为 NASA 曾 【详细】
中国天眼4月1日正式对全球开放 中国天眼是干什么的在哪里?
中国天眼于2020年1月11日正式开放运行。在中科院国家天文台主导建设之初,即确立了中国天眼将按国际惯例逐步开放的原则,以更好地发挥其科 【详细】
相关新闻
- 【环球热闻】微信小程序开发 - 第5章 API应用案例(上)
- 每日消息!华为绝地反击,打出一套漂亮的组合拳,让对手无暇接应
- 天天视讯!vivo X Flip上手体验:充满巧思的灵动竖折旗舰
- 美军首次公布UFO视频 美军UFO视频怎么回事?
- 天天观热点:韩剧二十岁(韩剧二十岁世敬扮演者)
- 妖字组词(妖的组词有哪些?)|环球今日报
- 五一假期火车票明日开售!|天天微速讯
- 杨利伟进入太空是哪一年哪一天? 杨利伟介绍
- 风云四号02星技术突破介绍 风云四号卫星能用多久?
- 人工饲养白犀牛可以吗?白犀牛不白为何叫白犀牛?
- 华为 Mate 60 Pro:麒麟9020+200倍镜头,这是一款怎样的旗舰手机?_环球新资讯
- 【独家】刚发布就降价,骁龙7+Gen2新机,12GB+512GB仅2299
- 数字世界带来的好处有哪些?视界经典文章! 环球焦点
- 【环球快播报】乾隆是几皇子(乾隆有几个皇子?)
- 天气降温了注意保暖的暖心句子(天气变凉注意保暖的暖心句子简短一句话)_环球速递
- 人类试拍黑洞照片长啥样?看到第一个黑洞有多难?
- SEXPO色博会举办 SEXPO色博会是什么?
- 联创光电:4月13日融券卖出3.29万股,融资融券余额12.59亿元 环球讯息
- 江西工地挖出恐龙蛋化石 恐龙蛋化石介绍
- 孟晚舟2.0版,看待美国政府针对TikTok的做法|环球信息