当前位置:   article > 正文

Cocos Creator微信获得用户授权的wx.createUserInfoButton的用法和自己的改进方法

createuserinfobutton

首先是官方的例子

wx.createUserInfoButton

可以看到官方给出的例子如下:

  1. const button = wx.createUserInfoButton({
  2. type: 'text',
  3. text: '获取用户信息',
  4. style: {
  5. left: 10,
  6. top: 76,
  7. width: 200,
  8. height: 40,
  9. lineHeight: 40,
  10. backgroundColor: '#ff0000',
  11. color: '#ffffff',
  12. textAlign: 'center',
  13. fontSize: 16,
  14. borderRadius: 4
  15. }
  16. })
  17. button.onTap((res) => {
  18. console.log(res)
  19. })

实际上,虽然给出了这个按钮的属性,但是对于一些小白来说还是不懂得如何使用,比如说这个按钮的位置的放置,所以我将上述代码进行了一些调整

 

  1. createLoginButton() {
  2. if (typeof (wx) != 'undefined') {
  3. //获取系统信息的宽度
  4. let sysInfo = wx.getSystemInfoSync();
  5. let screenW = sysInfo.screenWidth;
  6. let screenH = sysInfo.screenHeight;
  7. let rate = screenW / 750;//设计分辨率为750*1334
  8. let self = this;
  9. //根据你图片的大小调整对应的长宽高,并且在不同的分辨率下大小也会对应变化,我的图片是418*160
  10. let width = 418 * rate;
  11. let height = 160 * rate;
  12. const button = wx.createUserInfoButton({
  13. type: 'image',
  14. image: "images/ksyx.png",//图片的位置是在打包构建后的bulid里的根目录开始而不是项目目录
  15. style: {
  16. //设置位置
  17. left: screenW / 2 - width / 2,
  18. top: screenH/2 + 100,
  19. width: width,
  20. height: height
  21. }
  22. })
  23. button.onTap((res) => {
  24. console.log('点击授权按钮', res)
  25. if (res && res.userInfo) {
  26. button.destroy();
  27. self.Loadmenu();//载入下一个场景
  28. }
  29. })
  30. }
  31. }

在上述代码中,它的意义在于创建一个按钮,如果授权成功就会加载到下一个页面并且下一次便不会触发,不授权的话便会在当前页面停留直到用户同意授权,这样你就可以从res中获得用户的头像id等信息并且在你需要的地方显示出来

如果需要一个覆盖全屏的透明按钮的话,可以参考一下群友提供的代码

  1. //创建一个透明按钮在cc.Button的node节点上
  2. createAuthorizeBtn(btnNode:cc.Node) {
  3. let btnSize = cc.size(btnNode.width+10,btnNode.height+10);
  4. let frameSize = cc.view.getFrameSize();
  5. let winSize = cc.director.getWinSize();
  6. // console.log("winSize: ",winSize);
  7. // console.log("frameSize: ",frameSize);
  8. //适配不同机型来创建微信授权按钮
  9. let left = (winSize.width*0.5+btnNode.x-btnSize.width*0.5)/winSize.width*frameSize.width;
  10. let top = (winSize.height*0.5-btnNode.y-btnSize.height*0.5)/winSize.height*frameSize.height;
  11. let width = btnSize.width/winSize.width*frameSize.width;
  12. let height = btnSize.height/winSize.height*frameSize.height;
  13. // console.log("button pos: ",cc.v2(left,top));
  14. // console.log("button size: ",cc.size(width,height));
  15. let self = this;
  16. self.btnAuthorize = wx.createUserInfoButton({
  17. type: 'text',
  18. text: '',
  19. style: {
  20. left: left,
  21. top: top,
  22. width: width,
  23. height: height,
  24. lineHeight: 0,
  25. backgroundColor: '',
  26. color: '#ffffff',
  27. textAlign: 'center',
  28. fontSize: 16,
  29. borderRadius: 4
  30. }
  31. })
  32. self.btnAuthorize.onTap((uinfo) => {
  33. console.log("onTap uinfo: ",uinfo);
  34. if (uinfo.userInfo) {
  35. console.log("wxLogin auth success");
  36. wx.showToast({title:"授权成功"});
  37. }else {
  38. console.log("wxLogin auth fail");
  39. wx.showToast({title:"授权失败"});
  40. }
  41. });
  42. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/99880
推荐阅读
相关标签
  

闽ICP备14008679号