小程序之路

Posted 天道酬勤,勤能补拙。地道酬实,实能不弱。生有涯 力有限

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序之路相关的知识,希望对你有一定的参考价值。

转眼之间2017年马上就要过去,回顾这一年做小程序开发也就几个月了,是时候需要对于小程序做出一定的总结了。小程序我们可以理解为相当于安卓的App 最直接的方式,当然现在开发app 的方式很多 你可以使用Hbulider以及WebX5,我个人一开始并不看好小程序,但是没有办法客户需要做,小程序出来也就好久了,但是一直没有公众号那么火,学习了小程序我花了3天的时间左右,然后就是开发项目了。具体的小程序的学习的网址你可以进行参考https://mp.weixin.qq.com/debug/wxadoc/dev/index.html  微信的官方的网址进行学习。具体的我就不一一介绍了。

一.如果你是一个前端的开发人员那么只需要稍微改变一些基本的HTML =>WXML 的写法 以及 CSS=>=WXSS以及JS 稍微有点变化其他没有什么大的变化的。灵活的将JSON 列表和WXML 相互的结合发挥到极致的效果。开发微信小程序你需要进行安装一个微信开发工具。

二.如果你对于WebApi已经学习过或者已经上手过那么学习WebApi  还是非常的容易的。

三.关于微信小程序并结合到WebApi 来进行使用开发应用程序还是非常的快的。之前我一直在从事做微信公众号方面的开发,当我接触过小程序后才发现开发应用小程序是多么的方便以及快捷。所以朋友我建议你,如果后续需要进行应用程序方面的开发,我提倡并且建议你使用小程序做。真的很好用。

四.微信小程序方面API 的请求分为以下几类。API列表:

1.网络 API 列表:

API说明
wx.request 发起网络请求
wx.uploadFile 上传文件
wx.downloadFile 下载文件
wx.connectSocket 创建 WebSocket 连接
wx.onSocketOpen 监听 WebSocket 打开
wx.onSocketError 监听 WebSocket 错误
wx.sendSocketMessage 发送 WebSocket 消息
wx.onSocketMessage 接受 WebSocket 消息
wx.closeSocket 关闭 WebSocket 连接
wx.onSocketClose 监听 WebSocket 关闭

2.媒体 API 列表:

API说明
wx.chooseImage 从相册选择图片,或者拍照
wx.previewImage 预览图片
wx.startRecord 开始录音
wx.stopRecord 结束录音
wx.playVoice 播放语音
wx.pauseVoice 暂停播放语音
wx.stopVoice 结束播放语音
wx.getBackgroundAudioPlayerState 获取音乐播放状态
wx.playBackgroundAudio 播放音乐
wx.pauseBackgroundAudio 暂停播放音乐
wx.seekBackgroundAudio 控制音乐播放进度
wx.stopBackgroundAudio 停止播放音乐
wx.onBackgroundAudioPlay 监听音乐开始播放
wx.onBackgroundAudioPause 监听音乐暂停
wx.onBackgroundAudioStop 监听音乐结束
wx.chooseVideo 从相册选择视频,或者拍摄

文件 API 列表:

API说明
wx.saveFile 保存文件
wx.getSavedFileList 获取已保存的文件列表
wx.getSavedFileInfo 获取已保存的文件信息
wx.removeSavedFile 删除已保存的文件信息
wx.openDocument 打开文件

3.数据 API 列表:

API说明
wx.getStorage 获取本地数据缓存
wx.getStorageSync 获取本地数据缓存
wx.setStorage 设置本地数据缓存
wx.setStorageSync 设置本地数据缓存
wx.getStorageInfo 获取本地缓存的相关信息
wx.getStorageInfoSync 获取本地缓存的相关信息
wx.removeStorage 删除本地缓存内容
wx.removeStorageSync 删除本地缓存内容
wx.clearStorage 清理本地数据缓存
wx.clearStorageSync 清理本地数据缓存

4.位置 API 列表:

API说明
wx.getLocation 获取当前位置
wx.chooseLocation 打开地图选择位置
wx.openLocation 打开内置地图
wx.createMapContext 地图组件控制

5.设备 API 列表:

API说明
wx.getNetworkType 获取网络类型
wx.onNetworkStatusChange 监听网络状态变化
wx.getSystemInfo 获取系统信息
wx.getSystemInfoSync 获取系统信息
wx.onAccelerometerChange 监听加速度数据
wx.startAccelerometer 开始监听加速度数据
wx.stopAccelerometer 停止监听加速度数据
wx.onCompassChange 监听罗盘数据
wx.startCompass 开始监听罗盘数据
wx.stopCompass 停止监听罗盘数据
wx.setClipboardData 设置剪贴板内容
wx.getClipboardData 获取剪贴板内容
wx.makePhoneCall 拨打电话
wx.scanCode 扫码

6.界面 API 列表:

API说明
wx.showToast 显示提示框
wx.showLoading 显示加载提示框
wx.hideToast 隐藏提示框
wx.hideLoading 隐藏提示框
wx.showModal 显示模态弹窗
wx.showActionSheet 显示菜单列表
wx.setNavigationBarTitle 设置当前页面标题
wx.showNavigationBarLoading 显示导航条加载动画
wx.hideNavigationBarLoading 隐藏导航条加载动画
wx.navigateTo 新窗口打开页面
wx.redirectTo 原窗口打开页面
wx.switchTab 切换到 tabbar 页面
wx.navigateBack 退回上一个页面
wx.createAnimation 动画
wx.createContext 创建绘图上下文
wx.drawCanvas 绘图
wx.stopPullDownRefresh 停止下拉刷新动画

7.WXML节点信息 API 列表:

API说明
wx.createSelectorQuery 创建查询请求
selectorQuery.in 指定在哪个自定义组件中选取节点
selectorQuery.select 根据选择器选择单个节点
selectorQuery.selectAll 根据选择器选择全部节点
selectorQuery.selectViewport 选择显示区域
nodesRef.boundingClientRect 获取布局位置和尺寸
nodesRef.scrollOffset 获取滚动位置
nodesRef.fields 获取任意字段
selectorQuery.exec 执行查询请求

8.开放接口:

API说明
wx.login 登录
wx.getUserInfo 获取用户信息
wx.chooseAddress 获取用户收货地址
wx.requestPayment 发起微信支付
wx.addCard 添加卡券
wx.openCard 打开卡券

 

五.开发的微信小程序。

2<!--index.wxml-->
<view class="container">
  <swiper indicator-dots="{{indicatorDots}}"
  autoplay="{{autoplay}}" class="banners" interval="{{interval}}" duration="{{duration}}">
    <block wx:for="{{banner}}">
      <swiper-item class="banner" >
          <image src="{{item.image}}"  data-id="{{item.id}}" bindtap="bindViewTap" class="banner-image" width="100%" height="100%"/>
          <text class="banner-title">{{item.title}}</text>
      </swiper-item>
    </block>
  </swiper>
  <view class="news-item-container">
    <block wx:for="{{list}}" wx:for-index="id">
      <text wx:if="{{item.header}}" class="sub-title">{{item.header}}</text>
      <navigator wx:else url="../detail/detail?id={{item.id}}">
        <view class="news-item" >
          <view class="news-item-left">
            <text class="news-item-title">{{item.title}}</text>
          </view>
          <view class="news-item-right">
            <image src="{{item.images[0]}}" class="news-image"/>
          </view>
        </view>
      </navigator>
    </block>
    <button type="primary" class="load-btn"  loading="{{loading}}" plain="{{plain}}" bindtap="loadMore"> 更多 </button>
  </view>
  
</view>
//index.js
//获取应用实例
var app = getApp()
var utils = require(‘../../utils/util.js‘)
Page({
  data: {
    list: [],
    duration: 2000,
    indicatorDots: true,
    autoplay: true,
    interval: 3000,
    loading: false,
    plain: false
  },
  //事件处理函数
  bindViewTap(e) {
    wx.navigateTo({
      url: ‘../detail/detail?id=‘ + e.target.dataset.id
    })
  },
  loadMore (e) {
    if (this.data.list.length === 0) return
    var date = this.getNextDate()
    var that = this
    that.setData({ loading: true })
    wx.request({
      url: ‘http://news.at.zhihu.com/api/4/news/before/‘ + (Number(utils.formatDate(date)) + 1),
      headers: {
        ‘Content-Type‘: ‘application/json‘
      },
      success (res) {
         that.setData({
           loading: false,
           list: that.data.list.concat([{ header: utils.formatDate(date, ‘-‘) }]).concat(res.data.stories)
         })
      }
    })
  },
  getNextDate (){
    const now = new Date()
    now.setDate(now.getDate() - this.index++)
    return now
  },
  onLoad () {
    let that = this
    wx.request({
      url: ‘http://news-at.zhihu.com/api/4/news/latest‘,
      headers: {
        ‘Content-Type‘: ‘application/json‘
      },
      success (res) {
         that.setData({
           banner: res.data.top_stories,
           list: [{ header: ‘今日热闻‘ }].concat(res.data.stories)
         })
      }
    })
    this.index = 1
  }
})

 关于小程序的开发文档大家可以参考W3C : https://www.w3cschool.cn/weixinapp/9wou1q8j.html       2018/2/12  00:12 :46

以上是关于小程序之路的主要内容,如果未能解决你的问题,请参考以下文章

小程序各种功能代码片段整理---持续更新

全栈之路-微信小程序-SKU开发(代码)

Android获取各个应用程序的缓存文件代码小片段(使用AIDL)

提效小技巧——记录那些不常用的代码片段

Android小部件,启动一个片段?

vscode 开发微信小程序环境配置