問題の説明
WeChat アプレットの新しいインターフェイスを使用してユーザー情報を取得するときに、多くの人が多かれ少なかれこの状況に遭遇したことがあると思います。
调用wx.getUserProfile 报错getUserProfile:fail can only be
invoked by user TAP gesture.
このエラーメッセージは何を意味するのでしょうか? 一般的な意味は、承認ボタンがクリック イベントとして設定される必要がある、つまり、bintap イベントが対応するトリガー条件にバインドされるということです。
ソリューション
最初の一歩。コードが正しいことを確認してください。
まず、次のように wxml でログイン ボタンを定義する必要があります。
<view class="login-btn">
<button class="login-btn" style="background-color: #07C160;color:white;width:100%;" open-type="getUserProfile" bindtap="getUserProfile">
登录授权
</button>
</view>
次に、js ファイルに以下の情報を定義します。
getUserProfile() {
wx.login({
success(res) {
let code = res.code;
wx.getUserProfile({
lang: 'en',
desc: '获取授权',
success: function (res) {
console.log(res)
}, fail: function (res) {
console.log('fail-get-userinfo', res)
}, complete: function () {
console.log('complete-get-userinfo')
}
})
}
});
},
実際には、クリック イベント名を getUserProfile 以外の名前に変更しても機能しないことが判明しました。
2 番目のステップは、WeChat の実機デバッグを使用することです。
上記 2 つの状況が満たされた場合、ユーザー情報を取得できます。
お役に立てれば幸いです。