微信小程序小结

 前几日抽空看了下小程序,发现挺好玩的,mvvm的结构,语法比vue要简单,内置了一系列的组件,很方便。而后开发者工具直接上传代码,提交审核,而后发布,感受挺好。虽然不打算作个工具类的,可是作个介绍类小程序就很合适了。不用去作什么官网,也不用买服务器域名什么的,用邮箱注册个号,把本身想介绍的东西方式去,手机上发给别人也挺方便。css

01.语法结构

结构上很好理解,app.js能够直接获取用户的登陆信息,也能够什么都不作,关键仍是app.jsonhtml

{
  "pages":[
    "pages/index/index",
    "pages/about/about",
    "pages/location/location",
    "pages/logs/logs"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "书山有路",
    "navigationBarTextStyle":"black"
  },
  "tabBar": {
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页",
    "iconPath": "images/m.png",
    "selectedIconPath": "images/m1.png"
    },
    {
      "pagePath": "pages/location/location",
      "text": "位置",
      "iconPath": "images/w.png",
      "selectedIconPath": "images/w1.png"
    },{
      "pagePath": "pages/about/about",
      "text": "关注",
     "iconPath": "images/g.png",
    "selectedIconPath": "images/g1.png"
    }
    ]
  }
}

每个页面必须在pages中进行注册,window是一些基本的外观配置,tabBar就是用来设置一个页底导航。基本上每一个页面都包含了.js,.wxml和.wxss文件,.js以vue

Page({})开始,设置数据和方法,很简单。wxml也就是页面文件,有不少微信本身定义的元素,好比view,text和image,能够分别对应div,span和img。wxss就和css同样。

02.滑动

swiper挺方便的,有个问题就是不能自适应高度。json

<swiper indicator-dots="true"
  autoplay="true" interval="{{interval}}" duration="{{duration}}"  style='height:{{Hei}}' >
  <block wx:for="{{imgUrls}}">
    <swiper-item >
      <image src="{{item}}" mode="widthFix"  bindload="imgH"   class="slide-image" />
    </swiper-item>
  </block>
</swiper>

找了个网友的办法,亲测有效小程序

  imgH: function (e) {
    var winWid = wx.getSystemInfoSync().windowWidth;         //获取当前屏幕的宽度
    var imgh = e.detail.height;                //图片高度
    var imgw = e.detail.width;
    var swiperH = winWid * imgh / imgw + "px"          //等比设置swiper的高度。  即 屏幕宽度 / swiper高度 = 图片宽度 / 图片高度    ==》swiper高度 = 屏幕宽度 * 图片高度 / 图片宽度
    this.setData({
      Hei: swiperH        //设置高度
    })
  },

不要忘了在data里面设置Hei属性。api

03.地图

地图官方文档说的很详细,我也不必说了,主要是用百度找经纬度:拾取坐标系统,很方面。服务器

04.获取用户信息

在默认的app.js里面已经提供了微信

// 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经受权,能够直接调用 getUserInfo 获取头像昵称,不会弹框
          wx.getUserInfo({
            success: res => {
              // 能够将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.userInfo
              console.log(res.userInfo)

              // 因为 getUserInfo 是网络请求,可能会在 Page.onLoad 以后才返回
              // 因此此处加入 callback 以防止这种状况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
    })
  },
  globalData: {
    userInfo: null
  }

若是咱们要在别的页面用userInfo网络

var app = getApp();//
Page({
data:{
 userInfo:{}
}
//....
 onLoad() {
    this.setData({ userInfo: app.globalData.userInfo })
  }
})

对data对象复制都须要使用setData。这样你就能够在页面显示用户的头像和名称。app

05.长按扫码 

这个功能其实有点鸡肋,由于只能扫小程序的二维码,若是用户都已经进了这个页面,扫码还有个什么意义,由于小程序确定已经下载了。关键用户仍是想扫微信二维码或者公众号的二维码。微信确实管的比较严。

  previewImage: function (e) {
        wx.previewImage({
      current: 'http://images.cnblogs.com/xxxxx', // 当前显示图片的http连接     
      urls: ['http://images.cnblogs.com/xxxx'] // 须要预览的图片http连接列表     
    })

  },
<image class='img' bindtap="previewImage"  src='images/actv.jpg' />

这里的current和urls必须是http连接,无法用相对路径。因而最简单的,我就把图片传到了博客园的图册里面... 这样用户点击图片就能出现保存,发送给朋友,收藏。只有小程序二维码才会出现扫码识别.... 

06.图标

咱们须要一些图标,我的毕竟不想去找美工。发现阿里的这个还不错:http://www.iconfont.cn/

固然还有https://www.easyicon.net/,不过这家有时候不稳定。

小结:以上只是些简单功能的小程序开发,总体感受不错,开发速度很快,只是这个流量和转化有点难,但确实方便。并且这名称就至关因而pc时代的域名了,若是用户有了搜一搜小程序的习惯,想在微信上看大家家东西,若是没有搜到是否是有点遗憾。早点占个名字也行。

相关文章
相关标签/搜索