wtao
wtao
  • 发布:2020-05-29 12:57
  • 更新:2021-01-22 15:52
  • 阅读:1606

微信授权登录,authorize不执行

分类:HTML5+
// 微信授权登录对象  
    var aweixin = null;  
    // 当前环境支持的所有授权登录对象  
    var auths = {};  
      
    document.addEventListener('plusready', function () {  
        $('#wxlogin').click(function () {  
            getService();  
        });  
          
        function getService() {  
            plus.oauth.getServices(function (services) {  
                for (var i in services) {  
                    var service = services[i];  
                    auths[service.id] = service;  
                }  
                aweixin = auths['weixin'];  
                console.log(aweixin);  
                authorize();  
            }, function (e) {  
                plus.nativeUI.alert("获取登录授权服务列表失败:" + JSON.stringify(e));  
            });  
        }  
  
        // 获取微信登录授权对象后可进行授权操作  
        function authorize(){  
            console.dir(JSON.stringify(aweixin));  
            if(!aweixin){  
                plus.nativeUI.alert("当前环境不支持微信登录");  
                return;  
            }  
            aweixin.authorize(function(e){  
                console.log("授权成功:"+JSON.stringify(e));  
            }, function(e){  
                console.log("授权失败:"+JSON.stringify(e));  
            }, {scope:'snsapi_userinfo',state:'authorize test'});  
        }  
    });

只执行到了console.dir(JSON.stringify(aweixin));后面的没反应,没报错,也不知道成功还是失败了,微信客户端也没调起来

2020-05-29 12:57 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

你的 aweixin是undefined
for (var i in services) {
var service = services[i];
auths[service.id] = service;
}
感觉这个有问题 auths 这样写每一次都是等于数组最后那个元素 建议你要么用let 要么用forEach

  • wtao (作者)

    你好,aweixin能取到,并不是undefined


    2020-06-06 17:07

木木夕

木木夕

楼主解决了吗?我也遇到这个问题,authorize的成功和失败的回调都没有进入

  • wtao (作者)

    没有


    2020-07-30 11:09

y***@163.com

y***@163.com

楼主解决了吗?我也遇到这个问题。

阿撒托斯太昊

阿撒托斯太昊

应该要把点击事件和登陆获取授权等函数放在plusready外面吧,plusready只调用getService()就行吧!

  • s***@163.com

    啥意思,兄弟你的解决了?


    2022-02-28 16:14

该问题目前已经被锁定, 无法添加新回复