sys

小程序系统模块,主要用于授权登录

API

login

授权登录,用户允许之后,小程序平台会返回vtime及accesstoken

其中vtime表示令牌的有效期,单位为秒

accesstoken为令牌,后端可用此令牌到众圈开放平台获取用户的头像、昵称、性别等资料。

login(callback, mpid)

  • @callback {Function}:执行完该操作后的回调函数。回调函数将收到一个Response对象
    • ok {boolean}:true表示成功,false表示发生了错误
    • statusCode {int}:状态码,失败时有
    • data {Object}:数据
      • vtime {int}:令牌有效期
      • accesstoken {string}:令牌
  • mpid {string}: 小程序MPID,可选参数,用于playground调试时使用,传递对应的小程序MPID

Demo

var sys = weex.requireModule('sys');
sys.login((e) => {
	if(e.ok) {
	  // 拿到授权后,调用小程序自己服务端获取用户资料,需要服务端封装接口
	  modal.toast({message: "获取授权成功"});
	}else {
	  modal.toast({message: e.statusCode + ': ' + e.data});
	}
});

pay

拉起收银台,小程序在创建订单前,需要拉起收银台获取支付渠道及支付令牌。

pay(options, callback)

  • @options {Object}: 订单信息及通信通道名
    • orderDesc {string}:订单标题
    • totalAmount {number}:订单金额
    • channelName {string}:通信通道名称
    • mpid {string}: 小程序MPID,可选参数,用于playground调试时使用,传递对应的小程序MPID
  • @callback {Function}:执行完该操作后的回调函数。回调函数将收到一个Response对象
    • ok {boolean}:true表示成功,false表示发生了错误
    • statusCode {int}:状态码,失败时有

Demo

var sys = weex.requireModule('sys');
sys.pay({
	'orderDesc': '这是一个测试订单1',
	'totalAmount': 1,
	'channelName': 'sysPayChannel'
}, (ret) => {
	if(!ret.ok) {
		modal.toast({message: "参数非法, orderDesc, totalAmount, channelName必填"});
	}
});

isLogined

判断用户是否已登录,宿主小程序使用

isLogined(callback) since v0.28.1

  • @callback {Function}:执行完该操作后的回调函数。回调函数将收到一个Response对象
    • result {Object}:success表示用户已登录,fail表示未登录

Demo

var sys = weex.requireModule('sys');
if(parseInt(WXEnvironment.weexVersionCode) >= 2801) {
	sys.isLogined((ret) => {
		if(ret.result == 'fail') {
			// 未登录
			modal.toast({message: '请先登录'});
		}else {
			// other code
		}
	});
}

getPhoneNumber

授权获取用户手机号

getPhoneNumber(options, callback) since v0.28.2

  • @options {Object}: 输入参数
    • mpid {string}: 调试时输入你创建的小程序ID
  • @callback {Function}:执行完该操作后的回调函数。回调函数将收到一个Response对象
    • ok {boolean}:true表示成功,false表示发生了错误
    • statusCode {int}:状态码,失败时有
    • data {Object}:数据
      • vtime {int}:令牌有效期
      • accesstoken {string}:令牌

Demo

var sys = weex.requireModule('sys');
if(parseInt(WXEnvironment.weexVersionCode) >= 2802) {
	sys.getPhoneNumber({
		'mpid': 'your mpid' // 调试时存在,改为你自己的小程序ID
	}, (e) => {
		if(e.ok) {
		  // 拿到授权后,调用小程序自己服务端获取用户资料,需要服务端封装接口
		  modal.toast({message: "获取授权成功"});
		}else {
		  modal.toast({message: e.statusCode + ': ' + e.data});
		}
	});
}

setLeaderBoard

设置我的排行榜

setLeaderBoard(options, callback) since v0.28.2

  • @options {Object}: 输入参数
    • mpid {string}: 调试时输入你创建的小程序ID
    • score {number}: 当前分数
  • @callback {Function}:执行完该操作后的回调函数。回调函数将收到一个Response对象
    • ok {boolean}:true表示成功,false表示发生了错误
    • statusCode {int}:状态码,失败时有

Demo

var sys = weex.requireModule('sys');
if(parseInt(WXEnvironment.weexVersionCode) >= 2802) {
	sys.setLeaderBoard({
		'mpid': 'your mpid', // 调试时存在,改为你自己的小程序ID
		'score': 128
	}, (e) => {
		if(e.ok) {
		  modal.toast({message: "设置成功"});
		}else {
		  modal.toast({message: e.statusCode + ': ' + e.data});
		}
	});
}

getMyLeaderBoard

获取我的排行榜,返回两条数据,一条是全服的最高分,一条是当前APP的最高分。

getMyLeaderBoard(options, callback) since v0.28.2

  • @options {Object}: 输入参数
    • mpid {string}: 调试时输入你创建的小程序ID
  • @callback {Function}:执行完该操作后的回调函数。回调函数将收到一个Response对象
    • ok {boolean}:true表示成功,false表示发生了错误
    • statusCode {int}:状态码,失败时有
    • data {array}: 数组,第一条为全服最高分,第二条数据为本区最高分
      • unionid {string}: 用户唯一标识
      • appid {string}: appid
      • appname {string}: APP名称
      • icon {string}: APP ICON
      • mpid {string}: 小程序ID
      • score {number}: 分数
      • mininame {string}: 小程序名称
      • logo {string}: 小程序图标
      • systemtype {number}: 小程序系统类别
      • canoffline {number}: 是否支持离线访问
      • gender {number}: 性别 0女 1男 2未设置
      • nickname {string}: 昵称
      • avatar {string}: 头像
      • updateat {string}: 最后更新时间

Demo

var sys = weex.requireModule('sys');
if(parseInt(WXEnvironment.weexVersionCode) >= 2802) {
	sys.getMyLeaderBoard({
		'mpid': 'your mpid', // 调试时存在,改为你自己的小程序ID
	}, (e) => {
		if(e.ok) {
		  modal.toast({message: "获取成功"});
		}else {
		  modal.toast({message: e.statusCode + ': ' + e.data});
		}
	});
}

getLeaderBoards

获取排行榜,支持总榜、月榜、周榜

getLeaderBoards(options, callback) since v0.28.2

  • @options {Object}: 输入参数
    • mpid {string}: 调试时输入你创建的小程序ID
    • searchtype {string}: 排行榜类型 1总榜 2周榜 3月榜
    • orderbytype {string}: 排行区域类型 1全服 2本区
    • offset {number}: 分页控制参数,起始偏移
    • limit {number}: 每页数据条数
  • @callback {Function}:执行完该操作后的回调函数。回调函数将收到一个Response对象
    • ok {boolean}:true表示成功,false表示发生了错误
    • statusCode {int}:状态码,失败时有
    • data {array}: 数组
      • unionid {string}: 用户唯一标识
      • appid {string}: appid
      • appname {string}: APP名称
      • icon {string}: APP ICON
      • mpid {string}: 小程序ID
      • score {number}: 分数
      • mininame {string}: 小程序名称
      • logo {string}: 小程序图标
      • systemtype {number}: 小程序系统类别
      • canoffline {number}: 是否支持离线访问
      • gender {number}: 性别 0女 1男 2未设置
      • nickname {string}: 昵称
      • avatar {string}: 头像
      • updateat {string}: 最后更新时间

Demo

var sys = weex.requireModule('sys');
if(parseInt(WXEnvironment.weexVersionCode) >= 2802) {
	sys.getLeaderBoards({
		'mpid': 'your mpid', // 调试时存在,改为你自己的小程序ID
		'searchtype': 1,
		'orderbytype': 1,
		'offset': 0,
		'limit': 10
	}, (e) => {
		if(e.ok) {
		  modal.toast({message: "获取成功"});
		}else {
		  modal.toast({message: e.statusCode + ': ' + e.data});
		}
	});
}

showLeaderBoards

显示系统默认的排行榜,小程序可以直接通过此方法显示系统的排行榜,也可根据接口自行实现。

showLeaderBoards(options, callback) since v0.28.2

  • @options {Object}: 输入参数
    • mpid {string}: 调试时输入你创建的小程序ID
  • @callback {Function}:执行完该操作后的回调函数。回调函数将收到一个Response对象
    • ok {boolean}:true表示成功,false表示发生了错误
    • statusCode {int}:状态码,失败时有

Demo

var sys = weex.requireModule('sys');
if(parseInt(WXEnvironment.weexVersionCode) >= 2802) {
	sys.showLeaderBoards({
		'mpid': 'your mpid', // 调试时存在,改为你自己的小程序ID
	}, (e) => {
		if(e.ok) {
		  modal.toast({message: "执行成功"});
		}else {
		  modal.toast({message: e.statusCode + ': ' + e.data});
		}
	});
}