微信公众号开发(与angular框架相结合)

路由配置代码参考:
  //首页
      .state('app.home', {
        url: '/home?code&testopenid',
        templateUrl: 'home/home.html',
        controller: 'HomeController as vm',
        resolve: {
          load: ['$ocLazyLoad', function($ocLazyLoad) {
            return $ocLazyLoad.load(['home/home']);
          }],
          goLogin: ['$stateParams','$state', '$wxService', '$stateParams','$modal',function ($stateParams,$state, $wxService,$stateParams,$modal) {
            return {
                query: function() {
                    var deferred = $q.defer(); 
                    if (typeof $stateParams.code === "string") {
                      $wxService.reLogin($stateParams.code, function(data) {
                        deferred.resolve(data);
                      });
                    } else if (typeof $stateParams.testopenid === "string") {
                      saveToLocalStorage('openid' + appVersion, $stateParams.testopenid);
                      $wxService.memberInfoQuery($stateParams.testopenid, function(data) {
                        deferred.resolve(data);
                      });
                    } else {
                      if (typeof localStorage['openid' + appVersion] === "string") {
                        $wxService.memberInfoQuery(localStorage['openid' + appVersion], function(data) {
                          deferred.resolve(data);
                        });
                      } else {
                        deferred.reject({"status":"40001"});
                      }
                    }
                    return deferred.promise; // 返回承诺,这里并不是最终数据,而是访问最终数据的API  
                  } // end query  
              }
          }]
        }
      })

 

登录验证流程代码参考:
 $wxService.$inject = ['$http', '$window'];

  function $wxService($http, $window) {
    var $service = {
      $$payload: null,
      reLogin: function(_code, callback) {
        for(var key in window.localStorage){ //清除老版本所有localStorage数据
          if(key.indexOf(appVersion) == -1){
            window.localStorage.removeItem(key);
          }
        }
        
        if (localMod) {
          loadLocalData();
          this.memberInfoQuery(localStorage['openid' + appVersion], callback);
          return;
        }
        var self = this;
        if (!localMod) {
          //未登录 尝试重新登陆一遍
          if (!localStorage['openid' + appVersion] || localStorage['openid' + appVersion]=="null") {
            this.ownerInfoQuery(_code, function(data) {
              if (data.openid) {
                saveToLocalStorage('openid' + appVersion, data.openid);
                self.memberInfoQuery(data.openid, callback);
              } else {
                callback(data.openid)
                return;
              }
            });
          } else {
            this.memberInfoQuery(localStorage['openid' + appVersion], callback);
          }
        }
      },
      ownerInfoQuery: function(_code, callback) { //第一次获取openId
        $http({
          url: serviceUrl+'/weixin/openid/query?code='+_code+"&token="+wxToken,
          method: 'get'
        }).success(function(d) {
          callback(d);
        }).error(function(data) {
          callback({
            status: 0,
            msg: JSON.stringify(data)
          })
        });
      },
      memberInfoQuery: function(wxid, callback) {
        callback = callback || function() {};
        $http({
          url: serviceUrl+'/fsServe/checkLogin?wxid='+wxid,
          method: 'get'
        }).success(function(data) {
          callback(data);
        }).error(function(data) {
          debugAlert(JSON.stringify(data));
        });
      }
    };
    return $service;
  }

 

转载于:https://www.cnblogs.com/xmyun/p/6401297.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值