快速上手微信小程序-快递100

2007 年 1 月 9 日,乔布斯在旧金山莫斯科尼会展中心发布了首款 iPhone,而在十年后的 1 月 9 日,微信小程序正式上线。张小龙以这样的形式,向乔布斯致敬。

小程序在哪里?

小程序功能模块在“发现”频道最下方的位置。
如果没有,请先将微信升级到最新版本,然后在通讯录搜索‘小程序示例’,点击之后返回“发现频道”即可。
Tip:小程序搜索目前不支持模糊查询

小程序会带来什么

无处不在,随时访问

移动互联网的下一站是“唾手可得”
——张小龙

切入正题:怎么开发?

1. 获取微信小程序的 AppID
登录 https://mp.weixin.qq.com,就可以在网站的“设置”-“开发者设置”中,查看到微信小程序的 AppID 了,注意不可直接使用服务号或订阅号的 AppID 。

2. 下载开发者工具
下载地址:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=201715

新建项目

只是尝试一把,可以选择游客模式,无需填写AppId

小程序 IDE-编辑

小程序 IDE-调试

界面类似于chrome浏览器调试界面

项目结构

App.js 是全局脚本文件
App.json 是全局配置文件
App.wxss 是全局样式
Pages 中为页面

创建页面

在小程序IDE中,配置文件保存的同时,pages中会自动创建页面文件夹,文件夹中包含以下四种文件:
order.js order.json order.wxml order.wxss

逻辑层(App Service)

1.小程序开发框架的逻辑层是由JavaScript编写。
2.逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈(数据单向绑定,vue是双向绑定,小程序没有vm层)。
每个页面有独立的作用域,并提供模块化能力。
3.由于框架并非运行在浏览器中,所以 JavaScript 在 web 中一些能力都无法使用,如 document,window 等。
4.开发者写的所有代码最终将会打包成一份 JavaScript,并在小程序启动的时候运行,直到小程序销毁。类似 ServiceWorker,所以逻辑层也称之为 App Service。

App( )

App( ) 函数接受的 object 参数

getApp( )

全局的getApp( )函数,可以获取到小程序实例。

Page()

Page()函数用来注册一个页面。接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。

setData()

setData()函数用于将数据从逻辑层发送到视图层,同时改变对应的this.data

坑:直接修改 this.data 无效,无法改变页面的状态,还会造成数据不一致

模块化

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

WXSS(WeiXin Style Sheets)

就是微信小程序的css,新增了尺寸单位rpx:

rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素

组件

小程序中没有a标签,页面跳转需要用navigator组件

Navigator 页面链接 <navigator url="url">跳转</navigator>

其他组件

媒体组件,地图,画布,在此不一一赘述,请大家查看小程序API

https://mp.weixin.qq.com/debug/wxadoc/dev/api/?t=201715

最后附上快递查询功能代码,调用快递100物流查询公共接口

index.wxml

<!--index.wxml-->
<view class="container">
  <view bindtap="bindViewTap" class="userinfo">
    <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
    <text class="userinfo-nickname">欢迎您,{{userInfo.nickName}}</text>
  </view>
  <view class="section">
    <input placeholder-style="color:white" class="order-input" placeholder="请输入订单号" bindchange="bindChange" id="orderId" />
    <input placeholder-style="color:white" class="order-input" placeholder="请输入快递公司" bindchange="bindChange" id="company" />
  </view>
  <text>{{errTip}}</text>
  <button class="query-btn" type="default" size="{{primarySize}}" loading="" plain="true" disabled="{{disabled}}" bindtap="query"> 查询 </button>
</view>

index.js

小程序只支持https的请求

var app = getApp()
// var inputCon = {}
Page({
  data: {
    motto: ‘Hello World‘,
    userInfo: {},
    inputCon: {},
    errTip: ‘‘
  },
  //事件处理函数
  bindViewTap: function () {
    wx.navigateTo({
      url: ‘../logs/logs‘
    })
  },
  bindChange: function (e) {
    var id;
    var value;
    id = e.target.id;
    value = e.detail.value + ‘‘;
    this.data.inputCon[id] = value;
  },
  // query
  query: function () {
    // 测试用例
    // 417941822755 zhongtong
    // 884044987614211278 yuantong
    var that = this;
    var type = that.data.inputCon.company;
    var postid = that.data.inputCon.orderId;
    var data = {
      ‘type‘:type,
      ‘postid‘:postid
    }
    app.globalData.queryInfo.push(data);
    console.log(app)

    wx.request({
      url: ‘https://www.kuaidi100.com/query‘,
      data: data,
      header: {
        ‘content-type‘: ‘application/json‘
      },
      success: function (res) {
        var errTip = res.data.message;
        var orderInfo = res.data.data;
        if(orderInfo.length == 0) {

          console.log(errTip)
          that.setData({
            errTip:errTip
          })
          return
        }
        that.setData({
            errTip:‘‘
          })
        app.globalData.orderInfo = orderInfo;
        wx.navigateTo({
          url: ‘../order/order‘
        })
      }
    })
  },
  onLoad: function () {
    console.log(‘onLoad‘)
    var that = this
    //调用应用实例的方法获取全局数据
    app.getUserInfo(function (userInfo) {
      //更新数据
      that.setData({
        userInfo: userInfo
      })
    })
  }
})

订单物流页面

order.wxml

<!--pages/order/order.wxml-->
<view class="order-list">
  <block wx:for="{{orders}}">
    <view class="order-time"> {{item.ftime}}: </view>
    <view class = "order-txt"> {{item.context}} </view>
  </block>
</view>

order.js

// pages/order/order.js
var app = getApp();
Page({
  data:{
    orders:[]
  },
  onLoad:function(options){
    // 页面初始化 options为页面跳转所带来的参数
    var orderInfo = app.globalData.orderInfo;
    this.setData({
      orders: orderInfo
    })
  },
  onReady:function(){
    // 页面渲染完成
  },
  onShow:function(){
    // 页面显示
  },
  onHide:function(){
    // 页面隐藏
  },
  onUnload:function(){
    // 页面关闭
  }
})

总结

小程序的视图层与vue相似,用过vue的同学应该很容易上手,小程序对常用组件方法封装能满足基本需求,但目前还有一些bug,官网上也有标注。无论如何,小程序的出现无疑让前端的地位更上一层楼!

时间: 2024-12-25 07:36:06

快速上手微信小程序-快递100的相关文章

微信小程序快递鸟快递查询接口对接

微信小程序快递查询接口对接指南 1.登录快递鸟官网注册页面注册快递鸟账号 网址:http://www.kdniao.com/reg 2.登录快递鸟用户管理后台 网址:http://www.kdniao.com/login 注:登录快递鸟用户管理后台后获得用户ID和APIKey,此用于保证应用来源的可靠性,避免应用伪造,被不法使用. 3.进入“我的会员中心”进行实名认证 注: 3.1.认证类型.应用类型根据用户实际情况选择即可,接口返回数据与选择结果无关: 3.2.标记为*的为必填,要求上传清晰.

只需两步快速获取微信小程序源码

只需两步快速获取微信小程序源码 第一次在掘金这样高大上的社区写文章,忐忑地敲下我获取小程序源码过程中的经验分享. 最近在学习微信小程序开发,半个月学习下来,很想实战一下踩踩坑,于是就仿写了某个小程序的前端实现,过程一言难尽,差不多两周时间过去了,发现小程序的坑远比想象的要多的多!!在实际练手中,完全是黑盒的,纯靠推测,部分效果在各种尝试后能能做出大致的实现,但是有些细节,实在不知道如何去实现.这种时候,真的很想一窥源码,查看究竟,看看大厂的前端大神们是如何规避了小程序的一些比较奇葩的坑. 于是就

快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程,做了一个常规的todo app.这个app基于微信小程序的平台,实现了todo app的常规功能,同时为了让它更接近实际的工作场景,也用到了loading与toast这两个组件来完成一些操作的交互与反馈.这个平台给我的直观感受是,技术层面,它跟vue有相似性,但是远没有vue强大:开发时候的思路,不

(转)快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程,做了一个常规的todo app. 这个app基于微信小程序的平台,实现了todo app的常规功能,同时为了让它更接近实际的工作场景,也用到了loading与toast这两个组件来完成一些操作的交互与反馈. 这个平台给我的直观感受是,技术层面,它跟vue有相似性,但是远没有vue强大:开发时候的思路

一个小时快速搭建微信小程序

「小程序」这个划时代的产品发布快一周了,互联网技术人都在摩拳擦掌,跃跃欲试.可是小程序目前还在内测,首批只发放了 200 个内测资格(泪流满面).本以为没有 AppID 这个月就与小程序无缘了,庆幸的是微信这两天发布了正式版开发者工具,无需内测邀请也可以尝鲜了. 因此也就有了我与「小程序」的初体验,而我的感受只有一个字--爽! 选择哪个「小程序」Demo? 在知名同性交友网站 Github 上,「小程序」的 Demo 不少,但是大多只是简单的 API 演示,有的甚至直接把页面数据写在了 json

绿箭借助酷客多快速布局微信小程序

近日,酷客多小程序(http://www.kukeduo.cn)客户"绿箭商城"上线,酷客多小程序将携手绿箭打造新零售O2O商城系统,协助其向"互联网+"新零售转型,为打通线上线下双渠道引擎又做出了一伟大创举! 绿箭公司是国际糖果业界的领导者之一和全球最大的口香糖生产及销售商.绿箭已占据中国口香糖市场60%的市场份额,虽然在中国同行业竞争者不少,但他们的市场份额,销售额等都无法与绿箭相提并论. 此次绿箭借力微信小程序,秉持着小程序"用完即走"的理

店长宝干货分享:微信小程序如何运营推广?

微信小程序正式推出已经一年了,很多中小企业和个体商户已经借助微信小程序开发工具店长宝的千款微信小程序行业模板,在无需代码的情况下快速开发出了自己的微信小程序.那么微信小程序开发出来后如何运营和推广呢?其实微信小程序运营和推广的很多方法是可以从App和公众号借鉴过来的.这里总结了一些微信小程序(店长宝)运营和推广的一些思路,让大家快速上手微信小程序运营. 微信推广小程序 微信公众号的运营推广需要一定时间沉淀,结合产品做内容聚合推荐,内容不一定要多,但是一定要精并且符合微信号的定位.可以与合作伙伴推

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教

微信小程序开发视频教程

课程:拜师学艺,微信小程序从入门到大神必经之路(第一季,共四季) 课程观看地址:http://www.xuetuwuyou.com/course/172/lesson/list 课程出自学途无忧网:http://www.xuetuwuyou.com 讲师:风舞烟 课时列表: 第一部_诞生 - 天降大任:名门贵族,互联网开发新宠--小程序横空出世 第1章 : 忽如一夜春风来--小程序的前世今生 课时1:课程开场 课时2:本章目标及任务 课时3:第一回合_小王子出世-微信小程序_小程序为什么这么火