
第65篇
极客时间《9小时搞定微信小程序开发》第五课:原生API。
小程序API最后一部分,课程中没有详细去讲,因为当时开放的API还没有现在这么多,而且这部分API偏于后台控制,大多是后期逐步新增的。
wx.getUpdateManager 获取 全局唯一 的版本更新管理器,用于管理小程序更新
UpdateManager对象用来管理更新,有强制小程序重启并使用新版本、监听小程序版本更新事件等方法。
一些异步处理的任务,可以放置于 Worker 中运行,待运行结束后,再把结果返回到小程序主线程。Worker 运行于一个单独的全局上下文与线程中,不能直接调用主线程的方法。
Worker 最大并发数量限制为 1 个,创建下一个前需要结束当前 Worker;Worker 与主线程之间的数据传输,双方使用 Worker.postMessage()来发送数据,Worker.onMessage()来接收数据,传输的数据并不是直接共享,而是被复制的。
wx.reportMonitor,自定义业务数据监控上报接口,最多可以创建128个监控事件
监听或取消监听小程序切换前后台、错误事件
wx.canIUse:判断小程序的API,回调,参数,组件等是否在当前版本可用
绘图相关的API,主要是对CanvasContent对象的使用,实现各种颜色、线条、内容填充的控制
可以用以下几种方式来表示 canvas 中使用的颜色:
RGB 颜色: 如 'rgb(255, 0, 0)'
RGBA 颜色:如 'rgba(255, 0, 0, 0.3)'
16 进制颜色: 如 '#FF0000'
预定义的颜色: 如 'red'
其中预定义颜色有148个: 自定义颜色
调试开关和日志管理器的API,console可以向调试面板打印debug\error\info\log\warn共5类日志,logmanager最多保存5M的日志内容,超过5M后,旧的日志内容会被删除。
获取第三方平台的自定义的数据字段。小程序运营者可以一键授权给第三方平台,通过第三方平台完成业务。
第三方平台有单独的说明,参见: 第三方平台
创建 map 上下文 MapContext 对象,MapContext实现以下功能
对小程序框架中的路由控制进行扩充,实现关闭页面后返回或跳转到其他页面的 *** 作。
对小程序转发功能的控制,就是小程序右上角关闭按钮旁边3个小白点里的『转发』。
获取系统信息,主要包括以下信息:
设定或取消定时器,按照指定周期或在定时到期之后执行注册的回调函数
IntersectionObserver 对象,用于推断某些节点是否可以被用户看见、有多大比例可以被用户看见
SelectorQuery,查询节点信息的对象
小程序开发框架提供的API变得越来越多,通过这些微信原生的API,可以快速方便的调用微信的能力,比如文件的控制、图片视频的控制、数据的缓存、微信支付等,从而实现更加复杂多样的业务。
在小程序中,不允许直接d出用户授权的选择框,所以需要开发人员在界面上来设置提示信息,诱导用户点击,然后完成用户数据的录入和存取。在开发的过程中,某些请求是依托用户登录之后获取到的openId才能继续执行的,所以在页面上,某些数据渲染之前需要判断用户是否登陆,如若没有登录,怎样设计更好的交互来让用户登录。
使用小程序时,首先会进入到app.js这个文件中,这个文件里包含了俩个方法,一个是wx.login(),另一个是wx.getSetting(),wx.login()的目的是为了在用户登陆之后获取到一个对应的 code 值,然后通过这个值去自己的后台换取一个openId;wx.getSetting()第一是为了判断用户的授权范围,另一个是获取对应权限内的信息,比如说,用户授权小程序可以使用自己的基本信息,就可以在这个方法中获取到用户的头像、微信名、微信设置的城市这些字段,这就是一些需要掌握的基本流程,具体怎么实现登录呢?
在小程序中,官方给出了一种解决方案-button按钮:
在这个按钮中,有几个属性:
● type :按钮的类型,可以设置为primary,背景色为绿色
● wx:if :显示条件,内容分别为hasUserInfo和canIUse俩个字段,同时为真即可显示(俩个字段均需要在data中初始化赋值)
● open-type :按钮的功能类型,getUserInfo是为了获取基本信息(也可以设置为其他→getPhoneNumber:获取用户手机号)
● bindgetuserinfo :绑定的点击事件。在js中写对应的逻辑
在用户点击按钮之后,会出现一个d窗,确定用户是否授权 :
当用户点击允许之后,进入我们绑定的getUserInfo函数中:
在执行逻辑中,首先通过wx.login()方法获取到用户对应的openId,方便后续的 *** 作,然后再通过wx.getUserInfo()来获取到用户的基本信息,发送请求,将基本信息入库存储,或者展示到页面上,就完成了登录流程。
1.在登陆中可能会涉及到多个页面登陆成功之后的状态同步,可以通过 app.gloableData 来实现,在全局对象中设置一个字段,然后不论在哪个页面实现了登录,都可以通过全局对象来完成更新。
2.在 获取用户信息 的时候,有时候需要获取的是 中文类型 的数据,可以在 wx.getSetting() 的请求体中加一个 lang:'zh_CN'。 这样获取到的数据就是中文格式的了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)