参考:

小程序•小故事(6)——微信登录能力优化

小程序•小故事(4)——获取用户信息

本篇主要是讲微信getUserInfo接口不再出现授权弹框

那么原来getUserInfo是怎么样?修改之后又是什么样呢?

一、小程序与小游戏获取用户信息接口调整

wx.getUserInfo是用于获取用户信息的,比如头像、昵称。

现在使用接口会出现如下提示

查看文档

wx.getUserInfo 接口后续将不再出现授权弹窗,请注意升级

二、什么是授权弹框?

授权弹框就是弹出如下界面,让用户选择授权。

三、原来是怎么样的?现在是怎么样的?

原来直接调用 wx.getUserInfo 会直接弹出授权弹框,然后可以获取用户信息

    private async runGame() {
await this.loadResource()
this.createGameScene();
const result = await RES.getResAsync("description_json")
await platform.login();
const userInfo = await platform.getUserInfo();
console.log("用户数据:",userInfo); }

但是用户一旦取消授权,则下次再进入这个小游戏的时候,wx.getUserInfo不会再次弹出授权弹框了。

用户必须进入该小游戏公众号,进行设置,允许用户授权。

但是大部分小白用户不知道这些操作,那么游戏没有授权,无法获取用户信息,你将丧失掉了这个用户。

所以增加了wx.createUserInfoButton,这个接口可以主动调起授权窗口。

四、wx.createUserInfoButton怎么用?

首先在wx_mini_game.d.ts里增加接口。wx_mini_game.d.ts是什么?官方提供的wx接口文件。但是没有更新新的接口,所以你得自己添加。官方Demo

/**
* 在无须用户授权的情况下,批量获取用户信息。该接口只在开放数据域下可用
*/
createUserInfoButton(object: { type: string, text?: string, image?: string, style: any }): UserInfoButton;
/**
* 按钮
*/
declare interface UserInfoButton {
destroy(): void;
hide(): void;
onTap(callback: (res) => void): void;
offTap(callback: () => void): void;
show(): void;
}

  

在代码里使用

		let button = wx.createUserInfoButton({
type: 'text',
text: '获取用户信息',
style: {
left: 10,
top: 76,
width: 200,
height: 40,
lineHeight: 40,
backgroundColor: '#ff0000',
color: '#ffffff',
textAlign: 'center',
fontSize: 16,
borderRadius: 4
}
}); button.onTap((res) => {
console.log(res)
})

  

然后会出现一个按钮,如下红色的获取用户信息

点击这个按钮,在用户未授权的情况下,会主动调起授权弹框;在用户已授权的情况下,会获取用户数据。

当然这个红色文本比较丑,可以使用自定义图片 ,type改为image,放入图片链接,具体使用查看微信API的wx.createUserInfoButton

let button = wx.createUserInfoButton({
type: 'image',
         image: 'xxxxxx.png'

  

总结:

wx.getUserInfo,只能再用户首次使用小游戏时,调起微信授权弹框,一旦用户拒绝以后,不会再次调起授权弹框,你将因为无法获取这个用户的信息而丧失掉这个用户。

wx.createUserInfoButton  可以主动调起授权弹框。一般配合wx.getsetting使用,wx.getsetting可以判断用户是否授权过。未授权过,则创建createUserInfoButton。

微信小游戏 小程序与小游戏获取用户信息接口调整 wx.createUserInfoButton的更多相关文章

  1. 微信小程序~App.js中获取用户信息

    (1)代码:主要介绍下获取用户信息部分 onLaunch: function () { // 展示本地存储能力 var logs = wx.getStorageSync('logs') || [] l ...

  2. PHP微信公众平台OAuth2.0网页授权,获取用户信息代码类封装demo(二)

    一.这个文件微信授权使用的是OAuth2.0授权的方式.主要有以下简略步骤: 第一步:判断有没有code,有code去第三步,没有code去第二步 第二步:用户同意授权,获取code 第三步:通过co ...

  3. php 微信公众平台OAuth2.0网页授权,获取用户信息代码类封装demo

    get_wx_data.php <?php /** * 获取微信用户信息 * @author: Lucky hypo */ class GetWxData{ private $appid = ' ...

  4. 小程序app.onLaunch中获取用户信息,index.onLoad初次载入时取不到值的问题

    问题描述: //app.js App({ globalData:{ nickname:'' }, onLaunch: function () { let that=this; //假设已经授权成功 w ...

  5. 微信小程序维护登录态与获取用户信息

    前言. 微信小程序的运行环境不是在浏览器下运行的.所以不能以cookie来维护登录态.下面我就来说说我根据官方给出的方法来写出的维护登录态的方法吧. 一.登录态维护 官方的文档地址:https://m ...

  6. JAVA获取微信小程序openid和获取公众号openid,以及通过openid获取用户信息

    一,首先说明下这个微信的openid 为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,如果需要在多公众号.移动应用之间做用户共通,则需前往微信开放平台,将这些公众号和应用绑定到一个开 ...

  7. 微信小程序-form表单-获取用户输入文本框的值

    微信小程序-form表单-获取用户输入文本框的值 <input name='formnickname' class="textarea" placeholder=" ...

  8. 微信小程序 获取用户信息 encryptData解密 C#版本

    最近学习小程序开发,需要对encryptData解密,获取用户信息,官方源码没有C#版本,网上的资料比较杂,有的使用还有问题,下面贴一下自己亲试可以使用的一个源码 1.code 换取 session_ ...

  9. 完整且易读的微信小程序的注册页面(包含倒计时验证码、获取用户信息)

    目录 1.页面展示 2.wxml代码 3.wxss代码 4.js代码 1.页面展示 2.wxml代码 <!--pages/register/register.wxml--> <scr ...

随机推荐

  1. js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. iOS开发小技巧--textField成为密码框,view加载完后textField获取焦点

    文本框安全输入:Secure Text Entry(安全文本输入) view加载完后textField获取焦点的正确做法

  3. vlan pvid vid access口 trunk口

    VLAN技术浅谈    http://www.h3c.com.cn/MiniSite/H3care_Club/Data_Center/Net_Reptile/The_One/Home/Catalog/ ...

  4. Framework 7 之 给Picker Modal 添加半透明背景

    官网的效果图如下: 效果图如下: 我们需要在显示下面浮层的时候显示后面的半透明背景,Framework 7 里面默认有个半透明背景,如下图: 解决方案: 1.在</body>标签之前添加& ...

  5. js学习笔记29----拖拽

    原理:先计算鼠标与拖拽目标的左侧距离 跟 上面距离,再计算拖动后的位置. 示例代码: <!DOCTYPE html> <html lang="en"> &l ...

  6. 使用 jQuery UI 和 jQuery 插件构建更好的 Web 应用程序

    简介: 对于那些使用 JavaScript 和 jQuery 库从桌面应用程序转向 Web 应用程序的开发人员来说,他们还不习惯去考虑应用程序基本的外观,因为这些以前都是由操作系统来处理的.了解 jQ ...

  7. NGUI使用教程 安装NGUI插件

    我的使用的是unity4.2,大家可以去官网下载最新版本的http://unity3d.com/unity/download作为一个开发人员安装编译器是最基本的常识,相信大家都能正确安装.安装成功号桌 ...

  8. 关于Cocos2d-x中定时器的使用总结

    1.定义 定时器在大部分游戏中是不可或缺的,即每隔一段时间,就要执行相应的刷新体函数,以更新游戏的画面.时间.进度.敌人的指令等等. cocos2dx为我们提供了定时器schedule相关的操作.其操 ...

  9. python 脚本检测python 版本

    通过sys 模块的sys_info可以返回当前python 的版本信息, 其返回值是一个元组, 比如(2, 6, 6, 'final', 0); 表示当前版本为2.6.6 , 我们可以利用这个变量的值 ...

  10. vsearch 去除重复序列和singleton 序列

    在16S数据分析中,为了减少聚类的时间,提高准确度,需要去除重复序列,而singleton序列因为没有其他的序列作为验证,可信度不是很高,也需要去除,通常情况下使用usearch 完成这2项任务,但是 ...