微信小程序在无论在职能、文书档案及相关援助方面,都是优化后面三种微信账号类型,它提供了无数原生程序才有的接口,使得大家的小程序在无数方面突破H5页面使用的限制,尤其接近原生程序的效益,因而微信小程序有所不小的前景想象力。它提供了温馨的视图层描述语言
WXML 和 WXSS,以及依照 JavaScript
的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,能够让开发者能够一本万利的聚焦于数据与逻辑上。

一 、小程序的目录结构

小程序的目录结构如下所示。

图片 1

当中项目级其余的文本包蕴 app.js、app.json、app.wxss
那多少个。个中.js后缀的是本子文件,.json后缀的文本是安顿文件,.wxss后缀的是样式表文件。

页面级别能够分包很四个页面,如index,detail等页面,各个页面都包蕴.js,.json,.wxml,.wxss那么些文件,当中.wxml为页面视图像和文字件,是自定义标签的HTML页面。

app.js是小程序的本子代码。我们得以在这些文件中监听并拍卖小程序的生命周期函数、证明全局变量,能够调用框架提供的丰硕的
API。

app.json
是对一切小程序的大局配置。我们可以在那个文件中安插小程序是由哪些页面组成,配置小程序的窗口背景象,配置导航条样式,配置暗中认可标题。

app.wxss 是一切小程序的集体样式表。大家得以在页面组件的 class
属性上直接采纳 app.wxss 中宣示的体制规则。

三个小程序主体部分由多少个文件组成,必须放在项指标根目录。

图片 2

 

 微信小程序中的每三个页面包车型地铁【路径+页面名】都亟待写在 app.json 的 pages
中,且 pages 中的第二个页面是小程序的首页。

每一个小程序页面是由同路线下同名的八个例外后缀文件的组成,如:index.js、index.wxml、index.wxss、index.json。.js后缀的文件是本子文件,.json后缀的文本是安插文件,.wxss后缀的是样式表文件,.wxml后缀的文本是页面结构文件。

index.json
是页面包车型地铁安排文件:页面包车型大巴布局文件是非要求的。当有页面包车型地铁布局文件时,配置项在该页面会覆盖
app.json 的 window
中千篇一律的配置项。借使没有点名的页面配置文件,则在该页面一贯行使 app.json
中的暗中认可配置。

 图片 3

逻辑层(App Service)

小程序支付框架的逻辑层是由JavaScript编写。

逻辑层将数据进行拍卖后发送给视图层,同时接受视图层的风云反映。 在
JavaScript 的功底上,大家做了一些修改,以方便地开发小程序。

  • 增加 App 和 Page 方法,进行程序和页面包车型地铁登记。
  • 追加 getApp 和 getCurrentPages 方法,分别用来获取 App
    实例和日前页面栈。
  • 提供丰裕的 API,如微信用户数据,扫一扫,支付等微信特有能力。
  • 各类页面有单独的作用域,并提供模块化能力。
  • 鉴于框架并非运转在浏览器中,所以 JavaScript 在 web
    中有的能力都爱莫能助运用,如 document,window 等。
  • 开发者写的具备代码最后将会打包成一份
    JavaScript,并在小程序运行的时候运营,直到小程序销毁。类似
    ServiceWorker,所以逻辑层也称为 App Service。

视图层

框架的视图层由 WXML 与 WXSS 编写,由组件来展开始展览示。

将逻辑层的数量反馈成视图,同时将视图层的风浪发送给逻辑层。

WXML(WeiXin 马克up language)用于描述页面包车型地铁布局。

WXSS(WeiXin Style Sheet)用于描述页面包车型地铁体裁。

组件(Component)是视图的基本构成单元。

 

基本功零部件

框架为开发者提供了一二种基础零部件,开发者能够经过整合那个基础零部件实行火速支付。

如何是组件:

  • 组件是视图层的着力构成单元。
  • 零件自带一些职能与微信风格的体裁。
  • 1个零部件平日包罗开始标签结束标签属性用来修饰那一个组件,内容在四个标签之内。

    <tagname property="value">
      Content goes here ...
    </tagename>
    

    只顾:全体组件与本性都是小写,以连字符-连接

API

框架提供充裕的微信原生API,能够方便的调起微信提供的能力,如获得用户音讯,本地存款和储蓄,支付效能等。

说明:

  • wx.on 开始的 API 是监听有些事件时有产生的API接口,接受三个 CALLBACK
    函数作为参数。当该事件触发时,会调用 CALLBACK 函数。
  • 如未特殊约定,其余 API 接口都领受二个OBJECT作为参数。
  • OBJECT中能够钦点successfailcomplete来收取接口调用结果。
参数名 类型 必填 说明
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

 

二 、小程序接口成效列表

框架提供丰裕的微信原生API,能够便宜的调起微信提供的力量,如获得用户消息,本地存款和储蓄,支付功效等。

1)网络 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 列表:

wx.chooseImage 从相册选拔图片,只怕拍照
wx.previewImage 预览图片
wx.startRecord 开端录音
wx.stopRecord 停止录音
wx.playVoice 播放语音
wx.pauseVoice 暂停止播放放语音
wx.stopVoice 甘休播放语音
wx.getBackground奥迪oPlayerState 获取音乐播放状态
wx.playBackground奥迪(Audi)o 播放音乐
wx.pauseBackground奥迪(Audi)o 暂停止播放放音乐
wx.seekBackground奥迪o 控制音乐广播进程
wx.stopBackground奥迪o 停播音乐
wx.onBackground奥迪oPlay 监听音乐初阶播报
wx.onBackground奥迪(Audi)oPause 监听音乐中断
wx.onBackground奥迪(Audi)oStop 监听音乐甘休
wx.chooseVideo 从相册选拔摄像,大概拍录

 

3)文件 API 列表:

wx.saveFile 保存文件
wx.getSavedFileList 获取已封存的文本列表
wx.getSavedFileInfo 获取已保存的文件新闻
wx.removeSavedFile 删除已保存的文本音讯
wx.openDocument 打开文件

 

4)数据 API 列表:

wx.getStorage 获取当地数据缓存
wx.getStorageSync 获取当地数据缓存
wx.setStorage 设置本地数据缓存
wx.setStorageSync 设置本地数据缓存
wx.getStorageInfo 获取当地缓存的相干新闻
wx.getStorageInfoSync 获取当地缓存的连带音讯
wx.removeStorage 删除本地缓存内容
wx.removeStorageSync 删除本地缓存内容
wx.clearStorage 清理地面数据缓存
wx.clearStorageSync 清理地面数据缓存

 

5)位置 API 列表:

wx.getLocation 获取当前地方
wx.chooseLocation 打开地图采取地点
wx.openLocation 打开内置地图
wx.createMapContext 地图组件控制

 

6)设备 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 扫码

 

7)界面 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 结束下拉刷新动画

 

8)WXML节点消息 API 列表:

wx.createSelectorQuery 创制查询请求
selectorQuery.select 依据选取器选用单个节点
selectorQuery.selectAll 根据选拔器选用任何节点
selectorQuery.selectViewport 选择呈现区域
nodesRef.boundingClientRect 获得布局地方和尺寸
nodesRef.scrollOffset 获取滚动地方
nodesRef.田野s 得到任意字段
selectorQuery.exec 执行查询请求

 

9)开放接口:

wx.login 登录
wx.getUserInfo 获取用户音信
wx.chooseAddress 获取用户收货地址
wx.requestPayment 发起微信支付
wx.add卡德 添加卡券
wx.openCard 打开卡券

 

三 、相关处理代码

1)注册程序处理代码

App({
  onLaunch: function(options) {
    // Do something initial when launch.
  },
  onShow: function(options) {
      // Do something when show.
  },
  onHide: function() {
      // Do something when hide.
  },
  onError: function(msg) {
    console.log(msg)
  },
  globalData: 'I am global data'
})

2)注册页面处理代码

//index.js
Page({
  data: {
    text: "This is page data."
  },
  onLoad: function(options) {
    // Do some initialize when page load.
  },
  onReady: function() {
    // Do something when page ready.
  },
  onShow: function() {
    // Do something when page show.
  },
  onHide: function() {
    // Do something when page hide.
  },
  onUnload: function() {
    // Do something when page close.
  },
  onPullDownRefresh: function() {
    // Do something when pull down.
  },
  onReachBottom: function() {
    // Do something when page reach bottom.
  },
  onShareAppMessage: function () {
   // return custom share data when user share.
  },
  onPageScroll: function() {
    // Do something when page scroll
  },
  // Event handler.
  viewTap: function() {
    this.setData({
      text: 'Set some data for updating view.'
    })
  },
  customData: {
    hi: 'MINA'
  }
})

3)JS函数模块化

// common.js
function sayHello(name) {
  console.log(`Hello ${name} !`)
}
function sayGoodbye(name) {
  console.log(`Goodbye ${name} !`)
}

module.exports.sayHello = sayHello
exports.sayGoodbye = sayGoodbye

在急需运用那一个模块的文件中,使用 require(path) 将公共代码引入

var common = require('common.js')
Page({
  helloMINA: function() {
    common.sayHello('MINA')
  },
  goodbyeMINA: function() {
    common.sayGoodbye('MINA')
  }
})

 

4)互联网数据请求处理代码

    //点击搜索按钮调用的函数
      search:function(e){
        var that = this;

        //数据加载完成之前,显示加载中提示框
        wx.showToast({
          title: '加载中。。。',
          icon: 'loading',
          duration: 10000
        });

        //发起请求,注意 wx.request发起的是 HTTPS 请求
        wx.request({
          url: url + "?city=" + that.data.inputValue + "&key=" + apiKey,
          data: {},
          header: {
              'content-type': 'application/json'
          },
          success: function(res) {
            var data = res.data;
            //将数据从逻辑层发送到视图层,同时改变对应的 this.data 的值
            that.setData({
              restation: data.result,
              condition: false
            });
            //数据加载成功后隐藏加载中弹框
            wx.hideToast();
          }
        })

      }

 

相关文章

网站地图xml地图