WeChat ミニ プログラムはどのようにして WeChat ニックネームとアバターを取得しますか

<open-data type="userAvatarUrl"></open-data>

以前は、WeChat のニックネームとアバターを取得するためにオープンデータが使用されていましたが、更新後、アプレットはこのメソッドの使用をサポートしなくなりました。

次に、wx.getUserProfile API を使用してユーザー情報を取得する必要があります。このページは、(上記のコールバック button のように bindtap 、リクエストごとに認証ウィンドウがポップアップ表示され、ユーザーは同意した後に戻ります userInfoこのインターフェースは置き換えに使用されます wx.getUserInfo。

公式例: wx.getUserProfile(Object object) | WeChat オープン ドキュメント (qq.com) 

公式に従ってユーザー情報を取得します。ただし、ログインアプレットは一度取得した後にユーザー情報を保存する必要があり、一度クリックしただけでは取得できません。 

書類: 

 <button open-type="chooseAvatar" bindchooseavatar="assd">
    <image src="{
    
    {image}}" />
  </button>

<form catchsubmit="formSubmit" catchreset="formReset">
    <view class="name">
      <view class="name_text">
        昵称
      </view>
      <view>
        <input class="weui-input" name="input" type="nickname" placeholder="请输入昵称" />
      </view>
    </view>
  <view class="enter">
    <button style="margin: 30rpx 0" type="primary" formType="submit">登录</button>
  </view>
</form>

wxss ファイル:

.button {
  width: 100%;
  height: 200px;
}

.button button {
  width: 25%;
  height: 100px;
  margin-top: 50px;
  background-color: #ffffff;
}

.button image {
  width: 150%;
  height: 100%;
}

.name {
  width: 100%;
  height: 50px;
  border: 1px solid #cecccc;
  display: flex;
}

.name_text {
  width: 20%;
  height: 50px;
  line-height: 50px;
  padding-left: 5%;
}

.name input {
  width: 80%;
  height: 50px;
}

.enter {
  width: 100%;
  display: flex;
  justify-content: center;
  margin-top: 100px;
}

jsファイル: 

これはデフォルトの灰色のアバターを書きます

const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'

Page({

 data: {
    image: defaultAvatarUrl
  },

})

ボタンをクリックしてユーザーのアバターを取得し、wx.setStorageSync() メソッドを使用して写真をローカルに保存する必要があります。

const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
Page({

  data: {
    image: defaultAvatarUrl
  },

//用户头像
  assd: function (e) {
    console.log(e.detail.avatarUrl);
    let headimg =e.detail.avatarUrl
    // 存储用户头像
    wx.setStorageSync('headimg', headimg)
    this.setData({
      image: e.detail.avatarUrl
    })
  },

//用户名
  formSubmit(e) {
    let nickname=e.detail.value.input
    // 存储用户名称
    wx.setStorageSync('nickname', nickname)

  },


})

キャッシュされたデータの取得方法: wx.getStorageSync() を使用してローカル データを取得します

他のページの js:

Page({
  data: {
    scrollTop: true
  },

onShow: function () {

     let img = wx.getStorageSync('headimg')
     
     let name = wx.getStorageSync('nickname')

    }


})

おすすめ

転載: blog.csdn.net/m0_67063430/article/details/129754644