最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

小程序獲取用戶信息的兩種方法詳解(getUserProfile和頭像昵稱填寫)

 更新時間:2022年08月22日 10:34:26   作者:LiuNano  
小程序獲取用戶信息這部分其實(shí)不難,但是,他有點(diǎn)麻煩,下面這篇文章主要給大家介紹了關(guān)于小程序獲取用戶信息的兩種方法,主要使用的是getUserProfile和頭像昵稱填寫這兩種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

相信大家之前也經(jīng)常使用open-data獲取用戶的頭像和昵稱吧,但微信的這個改編意味著我們要使用新的方法獲取信息了。在討論區(qū)引發(fā)了很大的討論,接下來我們一起嘗試兩種獲取信息的方法。

第一種使用 getUserProfile

我們可以查看一下官方文檔 wx.getUserProfile(Object object),獲取用戶信息。頁面產(chǎn)生點(diǎn)擊事件(例如 button 上 bindtap 的回調(diào)中)后才可調(diào)用,每次請求都會彈出授權(quán)窗口,用戶同意后返回 userInfo。但要注意每次都需要授權(quán)一次是不是很麻煩,我們可以將他保存在我們數(shù)據(jù)庫中授權(quán)一次日后直接調(diào)用。

代碼示例

<view class="container">
  <view class="userinfo">
    <block wx:if="{{!hasUserInfo}}">
      <button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile"> 獲取頭像昵稱 </button>
      <button wx:else open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 獲取頭像昵稱 </button>
    </block>
    <block wx:else>
      <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
      <text class="userinfo-nickname">{{userInfo.nickName}}</text>
    </block>
  </view>
</view>
Page({
  data: {
    userInfo: {},
    hasUserInfo: false,
    canIUseGetUserProfile: false,
  },
  onLoad() {
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      })
    }
  },
  getUserProfile(e) {
    wx.getUserProfile({
      desc: '用于完善會員資料', // 聲明獲取用戶個人信息后的用途,后續(xù)會展示在彈窗中,請謹(jǐn)慎填寫
      success: (res) => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },

第二種使用 頭像昵稱填寫

當(dāng)小程序需要讓用戶完善個人資料時,可以通過微信提供的頭像昵稱填寫能力快速完善。

頭像選擇

需要將 button 組件 open-type 的值設(shè)置為 chooseAvatar,當(dāng)用戶選擇需要使用的頭像之后,可以通過 bindchooseavatar 事件回調(diào)獲取到獲取到頭像信息的臨時路徑。

昵稱填寫

需要將 input 組件 type 的值設(shè)置為 nickname,當(dāng)用戶在此input進(jìn)行輸入時,鍵盤上方會展示微信昵稱。

然后我們將他存到數(shù)據(jù)庫,日后直接調(diào)用即可!

<button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
  <image class="avatar" src="{{avatarUrl}}"></image>
</button> 
<input type="nickname" class="weui-input" placeholder="請輸入昵稱"/>
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
Page({
  data: {
    avatarUrl: defaultAvatarUrl,
  },
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail 
    this.setData({
      avatarUrl,
    })
  }
})

接下來我們要將值進(jìn)行存儲,并上傳數(shù)據(jù)庫。我們使用form將數(shù)據(jù)保存到data里面。

<button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
  <image class="avatar" src="{{avatarUrl}}"></image>
</button>
<form catchsubmit="formSubmit">
  <view class="row">
    <view class="text1">名稱:</view>
    <input type="nickname" class="weui-input" name="input" placeholder="請輸入昵稱" />
  </view>
  <button type="primary" style="margin-top:40rpx;margin-bottom:20rpx" formType="submit">提交</button>
</form>
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
Page({
  /**
   * 頁面的初始數(shù)據(jù)
   */
  data: {
    avatarUrl: defaultAvatarUrl,
    name: '',
  },
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail
    this.setData({
      avatarUrl,
    })
  },
  formSubmit(e) {
    console.log(e.detail.value.input)
    this.setData({
      name: e.detail.value.input
    })
   }
 })

這樣我們點(diǎn)擊提交時候發(fā)現(xiàn)值保存data里面了,接下來我們獲取openid,可以參考之前視頻哦!這里默認(rèn)已經(jīng)將openid保存到app.js里面了!

onLoad: function (options) {
    const app = getApp()
    var userid = app.globalData.openid
    this.setData({
      userid: userid,
    })
  },

接下來我們上傳圖片到云開發(fā),然后存到數(shù)據(jù)庫中,這里在cms創(chuàng)建內(nèi)容模型。

// pages/getuser/getuser.js
const db = wx.cloud.database()
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
Page({
  /**
   * 頁面的初始數(shù)據(jù)
   */
  data: {
    avatarUrl: defaultAvatarUrl,
    name: '',
    userid: '
',
    userphoto: '
',
    imgrl: '
'
  },
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail
    this.setData({
      avatarUrl,
    })
  },
  formSubmit(e) {
    console.log(e.detail.value.input)
    this.setData({
      name: e.detail.value.input
    })
    var that = this;
        wx.cloud.uploadFile({
          cloudPath: (new Date()).valueOf() + '.png', // 文件名
          filePath: this.data.avatarUrl, // 文件路徑
          success: res => {
            // get resource ID
            console.log(res.fileID)
            // 賦值圖片
            that.setData({
              imgrl: res.fileID
            })
            that.upload(res.fileID);
          },
          fail: err => {
            // handle error
          }
        })
  },
  upload(filepath){
    console.log(filepath)
    db.collection("user").add({
      data: {
          name:this.data.name,
          openid:this.data.userid,
          userphoto:filepath,
          _createTime: Date.parse(new Date()),
      }
  }).then(res => {
      wx.showToast({
          title: '添加成功',
          icon: 'success',
          duration: 2000
      })
  })
  },
  /** 
   * 生命周期函數(shù)--監(jiān)聽頁面加載
   */
  onLoad: function (options) {
    const app = getApp()
    var userid = app.globalData.openid
    this.setData({
      userid: userid,
    })
  },
})

這樣我們就完成了!

總結(jié)

到此這篇關(guān)于小程序獲取用戶信息的文章就介紹到這了,更多相關(guān)小程序獲取用戶信息方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js實(shí)現(xiàn)前端跨域postMessage的具體使用

    js實(shí)現(xiàn)前端跨域postMessage的具體使用

    這篇文章主要介紹了js實(shí)現(xiàn)前端跨域postMessage的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 簡單通過settimeout看javascript的運(yùn)行機(jī)制

    簡單通過settimeout看javascript的運(yùn)行機(jī)制

    這篇文章主要給大家介紹了關(guān)于如何通過settimeout看javascript的運(yùn)行機(jī)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用javascript具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 小程序拖動區(qū)域?qū)崿F(xiàn)排序效果

    小程序拖動區(qū)域?qū)崿F(xiàn)排序效果

    這篇文章主要為大家詳細(xì)介紹了小程序拖動區(qū)域?qū)崿F(xiàn)排序效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 微信小程序?qū)崿F(xiàn)星星評分效果

    微信小程序?qū)崿F(xiàn)星星評分效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)星星評分效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • JS實(shí)現(xiàn)直接運(yùn)行html代碼的方法

    JS實(shí)現(xiàn)直接運(yùn)行html代碼的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)直接運(yùn)行html代碼的方法,涉及javascript窗口操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-03-03
  • ES6通過babel轉(zhuǎn)碼使用webpack使用import關(guān)鍵字

    ES6通過babel轉(zhuǎn)碼使用webpack使用import關(guān)鍵字

    這篇文章主要介紹了es6通過babel轉(zhuǎn)碼還需要使用webpack才可以使用import關(guān)鍵字嗎的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • JS中不推薦使用的幾個函數(shù)方法

    JS中不推薦使用的幾個函數(shù)方法

    隨著JavaScript技術(shù)的不斷進(jìn)步和語言的持續(xù)演化,一些曾經(jīng)備受矚目的功能逐漸變得不再那么有用,甚至被更現(xiàn)代、更高效的替代方案所取代,今天,我們就來一起探討幾個原生JavaScript中那些“不再那么有用”的功能與API,最好避免使用的幾個函數(shù)方法
    2025-01-01
  • BootStrap3使用錯誤記錄及解決辦法

    BootStrap3使用錯誤記錄及解決辦法

    這篇文章主要介紹了BootStrap3使用錯誤記錄及解決辦法,需要的朋友可以參考下
    2016-12-12
  • webpack實(shí)踐之DLLPlugin 和 DLLReferencePlugin的使用教程

    webpack實(shí)踐之DLLPlugin 和 DLLReferencePlugin的使用教程

    這篇文章主要介紹了webpack實(shí)踐之DLLPlugin 和 DLLReferencePlugin的使用教程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-06-06
  • JavaScript版經(jīng)典游戲之掃雷游戲完整示例【附demo源碼下載】

    JavaScript版經(jīng)典游戲之掃雷游戲完整示例【附demo源碼下載】

    這篇文章主要介紹了JavaScript版經(jīng)典游戲之掃雷游戲?qū)崿F(xiàn)方法,結(jié)合完整實(shí)例形式分析了掃雷游戲的原理與具體實(shí)現(xiàn)流程,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2016-12-12

最新評論

遂昌县| 鲁甸县| 长丰县| 甘肃省| 张北县| 林周县| 朝阳区| 南川市| 莲花县| 望城县| 安康市| 当涂县| 伊春市| 灌云县| 来宾市| 依兰县| 巴林右旗| 万州区| 平原县| 长泰县| 开封市| 绥芬河市| 尚志市| 海南省| 太白县| 正宁县| 咸宁市| 白玉县| 西平县| 潮安县| 盱眙县| 光泽县| 大冶市| 金乡县| 玉门市| 米林县| 侯马市| 嵊州市| 普洱| 广河县| 赫章县|