微信小程序踩坑之个人中心

1.头像圆角

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

这样就可以显示头像&微信名称啦,如果想要更多个人信息,用如下代码:

    wx.getUserInfo({
      success(res) {
        const userInfo = res.userInfo
        const nickName = userInfo.nickName
        const avatarUrl = userInfo.avatarUrl
        const gender = userInfo.gender // 性别 0:未知、1:男、2:女
        const province = userInfo.province
        const city = userInfo.city
        const country = userInfo.country
        console.log(res);
      }
    })
image.png

gender:2是女性的意思
但是做头像圆角,<open-data>标签用border-radious是无效的,就再外面裹个view,类名.XXX

.XXX{
border-radius: 30px;
overflow: hidden;
}

2.获取位置

我们常用的模糊搜索比如:“北京市付小姐在成都”。。_,就会出现北京很多家该分店地址:

var QQMapWX = require('./../../lib/js/qqmap-wx-jssdk.js');
var qqmapsdk;
Page({
  onLoad: function (options) {
    // 实例化API核心类
    qqmapsdk = new QQMapWX({
      key: 'G5NBZ-CXXXXXXXXPJO-BHFLG'
    });
  },
  onShow: function () {
    qqmapsdk.search({
      keyword: '北京市付小姐在成都',
      success: function (res) {
        console.log(res);
      },
      fail: function (res) {
        console.log(res);
      },
      complete: function (res) {
        console.log(res);
      }
    });
  }
 });

在app.json加入以下配置:

 "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序位置接口的效果展示"
    }
  }

详细配置信息:https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#全局配置
返回了五六个地址信息,经度(longitude)和纬度(latitude)

image.png

3.如何申请key?下载qqmap-wx-jssdk

1. 申请开发者密钥(key):申请密钥
2. 下载微信小程序JavaScriptSDK,微信小程序JavaScriptSDK v1.0
3. 在微信公众平台(我的账号是29XXX,密码是xmXXX)3. 安全域名设置,在“开发” -> “开发设置”中设置request合法域名,添加https://apis.map.qq.com
申请:

image.png

image.png

下次登录找key的话在这儿:key管理
image.png

记得勾选,不然地址获取不到
image.png

4.新增地址功能

我们先获取到当前位置的经度纬度:
声明一下先:

  data: {
    addressList: [],//这里装搜索到的很多地址data
    latitude:0,
    longitude:0
  }

获取:

onLoad: function (options) {
    var this_ = this;
    // 实例化API核心类
    qqmapsdk = new QQMapWX({
      key: 'G5NBZ-CZSWR-UR2WH-WBFWV-7UPJO-BHFLG'
    });

    wx.getLocation({
      type: 'wgs84',
      success(res) {
      
        this_.setData({
          latitude: res.latitude,
          longitude: res.longitude
        });
        this_.searchaddressFn();//看下面的代码
      }
    });
  }

然后进行该经度纬度地址搜索: this_.searchaddressFn()
注意:keyword字段是必填的,可以填当前城市名

searchaddressFn:function(){
  var this_ = this;
  qqmapsdk.search({
    keyword: '北京',
    location: {
      latitude: this_.data.latitude,
      longitude: this_.data.longitude
    },
    success: function (res) {    
      this_.setData({
        addressList: res.data//八九个地址信息吧
      });
    },
    fail: function (res) {
      
    },
    complete: function (res) {
     
    }
  });
}

5.获取当前所在位置信息

位置相关的SDK用的是腾讯地图SDK,如果你用的是百度地图就用百度地图接口,否则会显示


image.png

检查一下自己配置的request 合法域名列表,在微信公众号--开发--开发设置--服务器域名(点击操作)


image.png

首先在onLoad中获取当前位置的经纬度,获取成功调用this.loadCity(),
核心代码:

https://apis.map.qq.com/ws/geocoder/v1/?location=经度,纬度&key=你的key值&get_poi=0

相关配置参数https://lbs.qq.com/webservice_v1/guide-gcoder.html

loadCity:function(){
    var this_ = this;
    wx.request({
      url: 'https://apis.map.qq.com/ws/geocoder/v1/?location='
       + this_.data.latitude + ',' + this_.data.longitude + '&key=G5NBZ-CZSWR-UR2WH-WBFWV-7UPJO-BHFLG&get_poi=0',
      data: {},
      header: {
        'Content-Type': 'application/json'
      },
      success: function (res) {
        // success  
        var citys = res.data.result.address_component.city;//北京市
        wx.setStorageSync('city', citys);//存起来以后用
        this_.setData({ location: citys});
      },
      fail: function () {
       
      }
    })
  }

6.位置范围距离计算

 cauculateRoute: function () {
    var _this = this;
    //调用距离计算接口
    qqmapsdk.calculateDistance({
      //mode: 'driving',//可选值:'driving'(驾车)、'walking'(步行),不填默认:'walking',可不填
      mode: 'walking',
      //from参数不填默认当前地址
      //获取表单提交的经纬度并设置from和to参数(示例为string格式)
      from: '', //若起点有数据则采用起点坐标,若为空默认当前地址。也可以这样写: from: e.detail.value.start || ''
      to: '39.984060,116.307520;39.984060,116.507520', //终点坐标
      success: function (res) {
        console.log(res);
      },fail:function(res){
        console.log(res);
      }
    })
  }

7.一些页面跳转问题

(1.带参跳转

wx.navigateTo({
        url: '../adressput/adressput?type='+item.address
       //对象转为字符串 url: '../adressput/adressput?type='+JSON.stringify(item)
      })

接收:

 onLoad: function (options) {
    console.log(options.type);
}

(2.区别
wx.navigateTo
wx.redirectTo
这俩个都是页面跳转,wx.redirectTo关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。
页面效果是a-b-c用wx.navigateTo跳转,回退正常
但是wx.redirectTo直接退出应用O(≧口≦)O
(3.页面回退并传递参数给之前页面。
这种应用很常见,比如


image.png

代码如下:

var pages = getCurrentPages();
  var prevPage = pages[pages.length - 2];//上一页,pages[pages.length - 1]表示当前页
   prevPage.setData({
      addresstr: item.address
    }) 
    wx.navigateBack({
      url: '../adress/adress'
    });

8.锚点定位

在html中我们可以用a标签,微信小程序中我们需要用scroll-view标签,用法:

 <scroll-view class='storydetailSome' style='height: calc(100vh - 250px)' scroll-into-view="{{toView}}"  scroll-y="true"   scroll-with-animation="true">
  //定位到这个view
   <view class='roomdetailSome-item roomlistSame' id="roomlistSame">
   </view>

  </scroll-view>

 //定位触发按钮
 <view class='aboutyard' bindtap='about_btn' data-opt="roomlistSame">相关小院</view>

js:

 about_btn:function(e){
    let target = e.currentTarget.dataset.opt;
    this.setData({
      toView: target
    })
  }

这里需要注意的一点是,scroll-view必须设定高度,如果你不确定,可以使用calc()设置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335