预拉取能够在小程序冷启动(第一次打开或已被销毁)的时候通过微信后台提前向第三方服务器拉取业务数据,当代码包加载完时可以更快地渲染页面,减少用户等待时间,从而提升小程序的打开速度 。

(1)后台配置
	开发->开发管理->开发设置->填写数据下载地址,只支持 HTTPS

(2)设置token验证身份
	字符串可以跟用户态相关,会在后续微信客户端向开发者服务器请求时带上,便于给后者校验请求合法性。
	一次启动小程序时,调用wx.setBackgroundFetchToken()设置一个TOKEN字符
	
	App({
	  onLaunch() {
	    wx.setBackgroundFetchToken({
	      token: 'xxx'
	    })
	  }
	})

(3)微信客户端提前拉取数据
	当用户打开小程序时,微信服务器将向开发者服务器(上面配置的数据下载地址)发起一个HTTP GET请求,其中包含的query参数如下,数据获取到后会将整个HTTP body缓存到本地。
		appid			小程序标识。
		token			前面设置的TOKEN。
		code			用户登录凭证,未设置TOKEN时由微信侧预生成,可在开发者后台调用auth.code2Session,换取openid等信息。
		timestamp		时间戳,微信客户端发起请求的时间
		path			打开小程序的路径。
		query			打开小程序的query。
		scene			打开小程序的场景值。

(4)读取数据
	App({
	  onLaunch() {
	    wx.getBackgroundFetchData({
	      fetchType: 'pre',
	      success(res) {
	        console.log(res.fetchedData) 缓存数据
	        console.log(res.timeStamp) 	客户端拿到缓存数据的时间戳
	        console.log(res.path) 		页面路径
	        console.log(res.query) 		query参数
	        console.log(res.scene) 		场景值
	      }
	    })
	  }
	})
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐