微信小程序記帳應用實例教程(續二)

圖0 #步驟php

#1.小程序端經過微信第三方登陸,取出nickname向服務端請求登陸,成功後本地並緩存uid,accessTokenhtml

接口出處:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.htmljson

App({
  onLaunch: function() {
    wx.login({
      success: function(res) {
        if (res.code) {
          //發起網絡請求
          wx.request({
            url: 'https://test.com/onLogin',
            data: {
              code: res.code
            }
          })
        } else {
          console.log('獲取用戶登陸態失敗!' + res.errMsg)
        }
      }
    });
  }
})

緩存用戶的基本信息小程序

index.jsapi

onLoad: function(){
	    var that = this
	    //調用應用實例的方法獲取全局數據
	    app.getUserInfo(function(userInfo){
	      //請求登陸
	    	console.log(userInfo.nickName);
	    	app.httpService(
	    			'user/login',
	    			{
	    				openid: userInfo.nickName
	    			}, 
	    			function(response){
			    		//成功回調
			    		console.log(response);
//			    		本地緩存uid以及accessToken
			    		var userinfo = wx.getStorageSync('userinfo') || {};
			    		userinfo['uid'] = response.data.uid;
			    		userinfo['accessToken'] = response.data.accessToken;
			    		console.log(userinfo);
			    		wx.setStorageSync('userinfo', userinfo);
		    		}
	    	);
	    })
  }

app.js緩存

定義一個通用的網絡訪問函數:微信

httpService:function(uri, param, cb) {
//	  分別對應相應路徑,參數,回調
	  wx.request({
		    url: 'http://financeapi.applinzi.com/index.php/' + uri,
		    data: param,
		    header: {
		        'Content-Type': 'application/json'
		    },
		    success: function(res) {
		    	cb(res.data)
		    },
		    fail: function() {
		    	console.log('接口錯誤');
		    }
		})  
  },

這裏method默認爲get,若是設置爲其餘,好比post,那麼服務端怎麼也取不到值,因而改動了服務端的取值方式,由$_POST改成$_GET。網絡

在Storage面板中,檢查到數據已成功存入app

圖1

源碼下載:關注下方的公衆號->回覆數字1002函數

對小程序開發有趣的朋友關注公衆號: huangxiujie85,QQ羣: 581513218,微信: small_application,陸續還將推出更多做品。

公衆號

相關文章
相關標籤/搜索