微信小程序,前端大梦想(五)

微信小程序之综合应用-访问网络加载数据

移动端访问网络加载数据时必不可少的功能,本章将接入豆瓣电影API,以列表的形式展现数据,支持下拉刷新及点击查看详情。重点包括:

l 访问网络

l 跳转画面及传参

l 下拉刷新的方法

一、 Wx.request(object)访问网络

wx.request发起的是 HTTPS 请求,不支持http请求

object参数说明:

data 数据说明 最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:

  • 对于 header[‘content-type‘] 为 ‘application/json‘ 的数据,会对数据进行 JSON 序列化
  • 对于 header[‘content-type‘] 为 ‘application/x-www-form-urlencoded‘ 的数据,会将数据转换成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)

示例代码:

注意事项:

  1. content-type 默认为 ‘application/json‘
  2. 要注意 method 的 value 必须为大写(例如:GET);
  3. url 中不能有端口;
  4. request 的默认超时时间和最大超时时间都是 60s
  5. request 的最大并发数是 5
  6. 网络请求的 referer 是不可以设置的,格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版。

二、 跳转页面,目前有5种方式

l wx.navigateTo(OBJECT)

保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。

OBJECT 参数说明:

示例代码:

wx.redirectTo(OBJECT)

关闭当前页面,跳转到应用内的某个页面

OBJECT 参数说明:

wx.reLaunch(OBJECT)

微信客户端 6.5.6 版本开始支持

关闭所有页面,打开到应用内的某个页面

OBJECT 参数说明:

wx.switchTab(OBJECT)

跳转到 tabBar 页面并关闭其他所有非 tabBar 页面

OBJECT 参数说明:

示例代码:

三、 下拉刷新

App.json文件可以配置全局设置,其中window对象可以设置页面对下拉刷新是否支持

页面相关事件处理函数

  • onPullDownRefresh: 下拉刷新

    • 监听用户下拉刷新事件。
    • 需要在config的window选项中开启enablePullDownRefresh。
    • 当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新。
  • onReachBottom 滚动页面到底部,加载新的内容(开发文档中没有提到)

了解了以上知识开始我们的案例吧,效果图如下:

项目结构如下:

重点代码如下:

App.json:

Playing.js代码:

// pages/palying/palying.js

var functions = require(‘../functions.js‘)

var url = ‘https://api.douban.com/v2/movie/in_theaters‘

var pageSize = 5

Page({

data: {

films: [],          //保存获得的json数据

hasMore: true,      //上拉加载更多提示标示

showLoading: true,  //数据加载标示

start: 0            //初始加载条目

},

//页面加载

onLoad: function () {

var that = this

functions.fetchFilms.call(that, url, ‘‘, 0, pageSize, function(data){

that.setData({

showLoading: false

})

})

},

//下拉刷新

onPullDownRefresh: function () {

var that = this

functions.fetchFilms.call(that, url, ‘‘, 0, pageSize, function(data){

that.setData({

showLoading: false

})

})

},

//上拉加载更多

onReachBottom:function(){

var that = this

functions.fetchFilms.call(that, url, ‘‘, that.data.start, pageSize, function(data){

})

},

//点击进入详细画面事件

viewDetail: function(e){

var ds = e.currentTarget.dataset;

wx.navigateTo({

url: ‘../detail/detail?id=‘ + ds.id + ‘&title=‘ + ds.title + ‘&type=ing‘

})

}

})

//点击进入详细画面事件

viewDetail: function(e){

var ds = e.currentTarget.dataset;    //取出页面参数

wx.navigateTo({   //跳转页面

url: ‘../detail/detail?id=‘ + ds.id + ‘&title=‘ + ds.title + ‘&type=ing‘

})

}

})

页面参数如下:

豆瓣电影API说明:

https://developers.douban.com/wiki/?title=movie_v2#in_theaters

时间: 2024-11-28 22:44:13

微信小程序,前端大梦想(五)的相关文章

微信小程序,前端大梦想(一)

小程序框架MINA简介 微信公众平台"小程序"具有不是APP胜似APP的效果,是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或者搜一下即可打开应用.也体现了"用完即走"的理念,用户不用关心是否安装太多应用的问题.应用将无处不在,随时可用,但又无需安装卸载. 去年9月22日,微信公众平台向外发出200个"小程序"内测邀请函.该"小程序"即去年年初腾讯曾对外介绍的微信"

微信小程序 -- 前端技术API手册

小时候随手拿着英语小本子,在厕所或者路上随时翻看的场景大家还记得吗? 现在它有回来了,本次工程主要收录前端各项技术API,整合在微信小程序中,在首页选择要学习的技术就可以进到相关页面. 小程序长这样:               目前的进展是 jQuery API 收录到一半,预计下周 小程序 会先上线,其他内容后续进行补充. 大家有兴趣或者想贡献自己力量的可以联系我,在公众号底部菜单中有联系方式. 如果有想学习微信小程序开发的也可以联系我. 广播: 关注微信公众号 "jQuery每日经典&qu

微信小程序用户身份-微信小程序前端开发工具

一个团队进行小程序的开发,那么团队成员的身份管理是很有必要的. 管理员可在小程序管理后台统一管理项目成员(包括开发者.体验者及其他成员).设置项目成员的权限,包括:开发者/体验者权限.登录小程序管理后台.开发管理.查看小程序数据分析等. 管理入口位于:小程序管理后台 - 用户身份 – 成员管理 权限 说明 开发者权限 可使用小程序开发者工具及开发版小程序进行开发 体验者权限 可使用体验版小程序 登录 可登录小程序管理后台,无需管理员确认 数据分析 使用小程序数据分析功能查看小程序数据 开发管理

网易云易盾推出面向微信小程序的大数据反作弊产品

近日,国内领先的业务风控服务网易云易盾对外推出面向微信小程序的大数据反作弊产品,源于网易20年的核心业务风控技术与全面稳健的策略模型,有机整合了设备指纹.IP画像.规则引擎等八大能力,可广泛应用电商营销.金融支付.生活服务类小程序场景,帮助企业防范微信小程序端的黑灰产作弊侵害. 易盾安全调查显示,小程序已成为企业业务风险环节新缺口 易盾安全经过调查发现,相比App,大部分互联网开发者还没有足够的能力利用小程序的特性建立起有效的风控策略."羊毛党"通过自己养号或着批量购买的大量微信号,就

微信小程序前端源码逻辑和工作流

看完微信小程序的前端代码真的让我热血沸腾啊,代码逻辑和设计一目了然,没有多余的东西,真的是大道至简. 废话不多说,直接分析前端代码.个人观点,难免有疏漏,仅供参考. 文件基本结构: 先看入口app.js,app(obj)注册一个小程序.接受一个 object 参数,其指定小程序的生命周期函数等.其他文件可以通过全局方法getApp()获取app实例,进而直接调用它的属性或方法,例如(getApp().globalData) //app.js App({ onLaunch: function ()

程序与页面—微信小程序前端开发工具

你可以观察到 pages/logs/logs 下其实是包括了4种文件的,微信客户端会先根据 logs.json 配置生成一个界面,顶部的颜色和文字你都可以在这个 json 文件里边定义好.紧接着客户端就会装载这个页面的 WXML 结构和 WXSS 样式.最后客户端会装载 logs.js,你可以看到 logs.js 的大体内容就是: Page({ data: { // 参与页面渲染的数据 logs: [] }, onLoad: function () { // 页面渲染后 执行 } }) Page

微信小程序-开心大转盘(圆盘指针)代码分析

大转盘是比较常见的抽奖活动 .以前做过h5的大转盘,最近小程序比较火,客户要求做小程序的大转盘.我们就来分析下代码.先上几个图:     界面效果还是很不错的. 做界面还是比较容易的,只要有前端基础没啥难度. 关键是 抽奖的动画,我们就是要小程序本身的动画: 界面加载的时候定义一个动画对象: onLoad(opt) { this.setPlateData(); //执行设置转盘表面的文字 let that = this; let aniData = wx.createAnimation({ //

微信小程序开发大神牛样本

微信小程序的推出,让很多App开发者忧喜参半.喜的是终于出现了一种全新的应用生态,不必再纠结于高昂开发成本的App:忧的是微信小程序开发人员需要增加学习成本,而非技术人员则更是无从下手开发具体流程如下:  1. 获取微信小程序的 AppID登录微信公众平台,就可以在网站的"设置"-"开发者设置"中,查看到微信小程序的 AppID 了,注意不可直接使用服务号或订阅号的 AppID .2. 创建项目我们需要通过开发者工具,来完成小程序创建和代码编辑.开发者工具安装完成后

微信小程序打卡第五天

2018-02-1823:55:53大年初三 微信小程序已经学了5个夜晚了,没有很努力,只是简单地接触,感觉从今天开始有了突破的进展,很爽! 无意间发现一个很好的教程,也是一个老哥分享的,很给力 http://blog.csdn.net/luoyanglizi/article/details/52681245受益匪浅 生活就是这样,接触一个新东西,总是让我欣喜,同时,又从中发现了之前的乐趣,真的让人很舒服. 之前的资料就不总结了记录在了新的博客里wenzheng.club,明天继续学习,争取学的

「小程序JAVA实战」微信小程序工程结构了解(五)

转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-05/ 微信小程序工程结构 audio,button,canvas,checkbox 都是由4个文件构成,而且他们的目录名称和文件内部的名称「保持一致」,这点特别重要. 主目录结构 app.js 外部的全局的js,可以当作一个父类,把这个全局文件理解成java里面的一个类,这样理解对于java开发的容易理解些. app.json 全局的配置文件,有点类似java web开发的resource目录下