小程序获取用户信息、手机号、定位
2021/10/16 9:09:41
本文主要是介绍小程序获取用户信息、手机号、定位,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
示例代码
wxml
<view class="form"> <view class="info"> <image class="avatar" src="{{userInfo.avatarUrl ? userInfo.avatarUrl : 'https://img1.baidu.com/it/u=3972952962,3272486892&fm=26&fmt=auto'}}" mode="aspectFill" alt="pic"></image> <view bindtap="getUserInfo" wx:if="{{!userInfo.avatarUrl}}">请先登录</view> </view> <view class="info"> 姓名:<text>{{userInfo.nickName}}</text> </view> <view class="info"> <!-- 注意点 --> 性别:<text>{{["未知", "男", "女"][userInfo.gender]}}</text> </view> <view class="info"> 手机:<text>{{userInfo.phone}}</text> <!-- 注意点 --> <button wx:if="{{!userInfo.phone}}" class="btn getPhoneBtn" open-type="getPhoneNumber" bindgetphonenumber="getphone">获取手机</button> </view> <view class="info"> 国家:<text>{{userInfo.country}}</text> </view> <view class="info"> 城市:<text>{{userInfo.city}}</text> </view> <view class="info"> <!-- 注意点 --> 地址:<text>{{userInfo.location}}</text> <button wx:if="{{!userInfo.location}}" class="btn getAddrBtn" bindtap="getLocation">获取地址</button> </view> </view>
JS
// pages/learn/login.js const app = getApp() var QQMapWX = require('../../utils/qqmap-wx-jssdk'); var qqmapsdk; var that; Page({ /** * 页面的初始数据 */ data: { userInfo: null }, /** * 生命周期函数--监听页面加载 */ onl oad: function (options) { that = this; // 取出本地缓存的用户信息 var userinfo = wx.getStorageSync("userinfo"); that.setData({ userInfo: userinfo }); console.log(that.data.userInfo); }, // 点击进行登录 getUserInfo: function(e) { var that = this; // 获取用户登录 wx.getUserProfile({ lang: "zh_CN", desc: "用于完善会员信息", success: function(res) { that.setData({ userInfo: res.userInfo, hasUserInfo: true }); console.log(that.data.userInfo); // 本地缓存用户信息 wx.setStorageSync("userinfo", that.data.userInfo); } }); }, // 获取手机号 getphone: function(e) { that = this; that.getsessionKey(function(session_key) { that.getphoneEx(e, session_key); }); }, getsessionKey: function(callback) { wx.login({ success: function(res) { var code = res.code; var url = app.data.serverUrl + "LoginHandle.ashx"; wx.request({ url: url, data: { act: "GetOpenId", code: code }, complete: function(res) { if(res.data && res.data.Info) { var user = JSON.parse(res.data.Info); callback(user.session_key); } } }); } }); }, getphoneEx: function(e, session_key) { var data = { act: "GetPhone", encryptedData: e.detail.encryptedData, iv: e.detail.iv, session_key: session_key }; wx.request({ url: app.data.serverUrl + "/LoginHandle.ashx", data: data, complete: function(res) { that.setData({ "userInfo.phone": res.data.Info }); wx.setStorageSync("userinfo", that.data.userInfo); } }); }, // 获取定位 getLocation: function(e) { that = this; qqmapsdk = new QQMapWX({ key: 'DQSBZ-QGSKP-H52D5-LVIB5-EHIJF-5JF2V' }); wx.getLocation({ type: 'gcj02', success: function(res) { qqmapsdk.reverseGeocoder({ location: { latitude: res.latitude, longitude: res.longitude }, success: function(res) { var position = res.result.address_component; that.setData({ "userInfo.location": position.province + position.city + position.district + res.result.formatted_addresses.recommend }); wx.setStorageSync("userinfo", that.data.userInfo); }, }); } }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })
这篇关于小程序获取用户信息、手机号、定位的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-13微信小程序如何封装接口域名?-icode9专业技术文章分享
- 2024-11-13如何在微信小程序中实现直传功能?-icode9专业技术文章分享
- 2024-11-13如何在小程序的地图组件中添加标记和文字?-icode9专业技术文章分享
- 2024-11-13在微信小程序的地图组件中如何实现自定义标记和气泡?-icode9专业技术文章分享
- 2024-11-01微信小程序教程:零基础入门到实战
- 2024-11-01微信小程序全栈教程:从入门到实践
- 2024-10-31微信小程序怎么实现关注公众号功能-icode9专业技术文章分享
- 2024-10-30微信小程序cover-view,支持bindtap吗-icode9专业技术文章分享
- 2024-10-30微信小程序的cover-image支持bindtap吗-icode9专业技术文章分享
- 2024-10-30微信小程序web-view怎么设置高度?-icode9专业技术文章分享