一个微信小程序开发示例

article/2025/9/17 22:14:39

一个微信小程序开发示例(豆瓣电影)

  • 新版本(不包含工作流)请移步至:https://github.com/zce/weapp-douban
  • 当前仓库会暂缓更新,主要留下来给大家答疑
  • 需要基础教程的朋友们稍等一阵吧,目前有计划重新去写一套更系统的。最近有很多要屈服于现实的问题,谢谢理解 ?

Build Status Dependency Status devDependency Status js-standard-style

关于豆瓣API限制第三方小程序调用问题说明

很多朋友最近都在反馈豆瓣接口 403 的问题,我抽空仔细排查了一遍,豆瓣官方应该是限制了第三方小程序对豆瓣接口的调用,对于这一行为我认为“无可厚非”,因为你没有为豆瓣的免费服务“买单”,请各位不要骂街。

为了帮助更多初学者或是爱好者,我个人准备了一个反向代理服务器(免费开放)。希望各位珍惜资源切勿滥用,谢谢!

接口地址:https://douban.uieee.com (支持 HTTP / HTTPS)

接口限流:10000 次 / 1 小时,由于是豆瓣官方的限流,所以所有使用我搭建的这个反向代理服务的朋友都是共享这 10000 次请求的,我也没办法再去提高这个数字(普通个人用户是 100 次 / 1 小时),所以还是希望大家不要滥用。

当然如果还是不幸超出额度的话,就只能等待下一个整点,不明白为什么的朋友,可以自己 Google 一下接口限流:API Rate Limit。

如果你可以的话,建议你自己参考我的配置文件配置一个自己的反向代理服务(这样就没人跟你抢了?)

接口配置文件仓库:https://github.com/zce/douban-api-proxy (包括解决方法)

具体使用

  • 将豆瓣的 API 地址更改为以上地址
  • 修改微信小程序后台的白名单

文字教程

  • https://github.com/zce/weapp-demo/tree/tutorial

相关演示

  • 视频演示如何运行当前项目
  • 豆瓣电影小程序真机测试

很多朋友给我发消息说希望可以真机体验一下,所以前段时间我抽空把这个小程序发布了,大家可以通过微信扫码体验:

DoubanFilm

源码我放在了:https://github.com/zce/weapp-douban

相关项目

  • zce/weapp-douban - 不包含开发工作流版本的豆瓣电影
  • zce/weapp-todos - 一个简单的任务清单小程序
  • zce/weapp-locally - 本地生活,本地吃喝玩乐
  • zce/weapp-beauty - 拍拍测颜值,AI
  • zce/weapp-boilerplate - 一个小程序的快速开发骨架

有想法?

Welcome PR / Issue / WeChat!

交流群

微信群垃圾广告和无意义的分享链接太多,最近狠下心清理了~ 改用 QQ 群,单独审核,禁止广告,我的目的很简单,就是留出一个干净的环境,让志同道合的一起玩,谢谢大家

IT BETTER群二维码

我的微信

如果你不喜欢热闹,或者加不进去,可以告诉我(注意我不收红包!有问题直接留言就行,只求描述到我能看懂!我尽快回复)

我的微信

目录

  • 预览
  • 完整特性
  • 操作步骤
  • 使用说明
    • 开发阶段
    • 生产阶段
  • 开发计划
  • 分支说明
  • 相关项目
  • 联系方式
  • 许可

预览

豆瓣电影演示

视频演示

完整特性

  • 开发阶段与生产阶段分离。
  • 自动化生成新页面所需文件并添加到配置中。
  • Standard Code Style校验全部的jsjson文件。
  • 开发阶段json配置文件可以有注释,方便备注。
  • 代码中集成部分文档内容,减少查文档的时间。
  • 开发阶段可以使用less完成样式编码,原因你懂得~ (如果你了解这些,当然可以支持sass等其他预处理样式)。
  • 借助babel自动进行ES2015特性转换,放心使用新特性。
  • 开发阶段用xml文件后缀取代wxml后缀,避免在开发工具中配置代码高亮。
  • Source Map
  • Travis CI

操作步骤

for English

README.en.md

将项目克隆到本地

用到了GIT环境,没有环境的话请自行解决吧。

# 定位到任意目录
$ cd path/to/root# 克隆仓库到指定的文件夹
$ git clone https://github.com/zce/weapp-demo.git [project-name] -b master --depth 1# 进入指定的文件夹
$ cd [project-name]

安装项目NPM依赖

用到了Node环境,没有环境的话也请自行解决吧。

$ npm install

使用说明

for English

README.en.md

开发阶段

执行如下命令

# 启动监视
$ npm run watch

通过微信Web开放者工具打开项目根目录下dist文件夹,预览~

  • 打开微信Web开放者工具,选择添加项目,填写或选择相应信息  + AppID:点击右下角无AppID(个人用户可以申请)
    • 项目名称:随便填写,因为不涉及到部署,所以无所谓
    • 项目目录:选择项目根目录下dist文件夹
    • 点击添加项目
  • 可以通过任意开发工具完成src下的编码,gulp会监视项目根目录下src文件夹,当文件变化自动编译
  • 注意在微信公众平台后台添加域名白名单设置或者关闭开发阶段对请求域名安全的校验
    • https://api.map.baidu.com
    • https://douban.uieee.com

创建新页面

执行如下命令

# 启动生成器
$ npm run generate
? Input the page name (index) [page-name]
? Do you need a configuration file (y/N) N
? Select a style framework (Use arrow keys)
> less
# 自动生成...

由于微信小程序的每一个页面有特定的结构,新建工作比较繁琐。可以通过此任务减少操作。

生产阶段

执行如下命令

# 启动编译
$ npm run build

生产阶段的代码会经过压缩处理,最终输出到dist下。

同样可以通过微信Web开放者工具测试。

开发计划

  •  自动化生成新页面所需文件;
  •  自动生成新页面时,自动添加配置到app.json
  •  加入ES2015Polyfill,支持类似Promise的新API
  •  自动刷新微信Web开放者工具中的预览;
  •  HTML to WXML 转换器,让大家可以直接使用HTML元素开发;

分支说明(WIP)

for 新手同学

这段时间有很多人反映代码看不懂,没法看下去。

可能有很多刚入门的同学,刚开始学习没有接触太多,而我的这个仓库也旨在服务大众。

为此特地创建多个分支,每个分支的特点和复杂程度各不相同(计划,请持续关注):

  •  level-00
  • 最基本的微信小程序项目结构
  • 一个简单页面的工作
  •  level-01
  • 包含NavigationBarTabBar的设置
  • 多标签页面切换
  •  level-02
  • 划分程序中的各个页面
  • 分别完成各个页面的结构和布局
  •  level-03
  • 页面与页面之间的跳转
  •  level-04
  • 使用假数据的方式完成数据绑定
  •  level-05
  • 改用wx.request接口调用豆瓣API完成数据加载
  • 增加加载过程界面体现(loading)
  •  level-06
  • 封装操作豆瓣API的模块
  • 二次封装微信APIPromise的实现
  •  level-07
  • 上拉加载(数据分页)
  •  level-08
  • 其他微信API的使用
  • ..
  •  master
  • 主线版本,包含全部功能和特性!
  • 转载页面 : https://github.com/zce/weapp-demo/blob/master/README.md
  • 在这里多谢大神的资源 已经解决403的问题!!

http://chatgpt.dhexx.cn/article/Z2jV5dFo.shtml

相关文章

微信小程序实例系列

实战 【微信小程序】---- redux 在原生微信小程序的使用实例【微信小程序】---- weapp-redux的使用文档【微信小程序】---- Promise.then(success, fail)执行顺序的问题【微信小程序】---- 监听页面停止滚动【微信小程序】---- CustomBar 公用组件封装微信小程序----开发rui-s…

微信小程序作品实例

目录 简介 作品详情 作品代码 一、主页界面 1、WXML文件: 2、WXSS文件: 3、JS文件 4、JSON文件: 5、补充 二、购物车界面 1、WXML文件 3、JS文件 4、JSON文件 三、分类界面和个人中心界面 简介 这是我在学习完微信小程序后,写的一个小案例,是…

微信小程序开发之——微信小程序示例

一 概述 除了WeUI组件库,官方进行了扩展,包含组件库、扩展能力、接口和云开发示例 项目地址在线预览码预览界面miniprogram-demo 二 如何使用小程序示例 2.1 小程序示例——tabs 官方示例下的tabs位置 miniprogram-demo-master\miniprogram\page\we…

微信小程序相关操作示例

微信小程序相关操作示例 wxml-写页面for指令绑定事件数据绑定获取当前用户相关信息的方式跳转展示用户信息表单提交键盘输入的控制 js-写方法初始数据(字典):方法函数:存储图片到云开发平台存储访问服务器的request方式获取当前用…

小程序-demo:小程序示例

ylbtech-小程序-demo:小程序示例 1.返回顶部 0、 1、app.js const openIdUrl require(./config).openIdUrlApp({onLaunch: function () {console.log(App Launch)},onShow: function () {console.log(App Show)},onHide: function () {console.log(App Hide)},glo…

Toast与Snackbar的那点事

背景 Toast是Android平台上的常用技术。从用户角度来看,Toast是用户与App交互最基本的提示控件;从开发者角度来看,Toast是开发过程中常用的调试手段之一。此外,Toast语法也非常简单,仅需一行代码。基于简单易用的优点…

Flutter之SnackBar原理详解

初次学习SnackBar控件,第一反应就是这货怎么感觉跟Android的Toast一样!使用起来确实简单,但是其内部原理扒拉出来到时能学到一点东西,下面就细细的剖析这个组件。 Snackbar的作用就是在屏幕的底部展示一个简短的消息,与此同时&am…

Android Material Design 系列之 Snackbar 使用详解

前言 本文是 Material Design 系列第二篇:SnackBar 的提出实际上介于 Toast 和 Dialog 的中间产物,SnackBar 提供有关操作的轻量级反馈,它们在移动设备的屏幕底部显示一条简短消息。SnackBar 出现在屏幕上所有其他元素的上方,一次…

Android中Snackbar的介绍以及使用

Android中Snackbar的介绍以及使用 介绍 Snackbar可以说是Toast的升级版,不仅有显示信息的功能,还可以添加一个Action,实现点击功能,可以右滑删除。 效果图 Snackbar是Android Support Design Library库支持的一个控件&#xff0c…

安卓之SnackBar

SnackBar SnakeBar与Toast相似,不过SnakeBar可以与用户进行交互。 不过首先需要在app/bulid.gradle中添加一句依赖,操作方法如下 点击这个灯泡,选择Add Library dependency然后添加下面的依赖 implementation com.android.support:design:2…

使用Snackbar!——Android Snackbar花式使用指南

使用Snackbar!——Android Snackbar花式使用指南 本文是在《Design Support Library第三部分:Snackbar样式》和《Snackbar使用及其注意事项》两篇文章的启发下而来,首先对两篇文章的作者表示感谢。 Snackbar是Android Support Design Library库中的一个控…

Android 中的自定义 Snackbar

前言 Snackbars 在 Android 应用程序中很常见。几乎每个应用程序都使用 Snackbars 来显示有关应用程序中正在发生的事情的一些信息。您可以将 Snackbar 视为 Android 中 Toasts 的替代品或更好的版本。 默认情况下,Snackbar 显示在屏幕底部,它出现在屏…

Snackbar的使用

最近看到Material Design中的Snackbar,跟Toast很相似。似乎效果比原生的Toast好写(当然我们也可以自定义Toast成Snackbar的效果),至于Snackbar特别深入的定制目前了解甚少,所以这里简单记录一下常用的。 效果图 下面看一下效果 这里面加了个…

Android Snackbar控件

1. Snackbar类 Snackbar是5.0版本出现的控件,类似于Toast,显示在屏幕的底部,包含文字信息与一个可选的操作按钮。需要添加Design依赖库,并且使用Theme.AppCompat主题。 2. 创建Snackbar类 Snackbar利用静态方法make()来创建实…

Android Snackbar简单解析

偶然间发现android中有Snackbar类,还是有点意思,类似于toast。与toast相比,最明显的区别是:Snackbar只能在屏幕底部显示。其他用法基本与toast相似。 先来张效果图吧,静态图: 大概的用法呢?: S…

android Snackbar新控件解析

Dialog和Toast,我们在日常的开发中一定非常熟悉,常常被用来作为Android应用内提示性信息的两种展示方式。然而Google在Design包中又提供了一种新的选择,那就是Snackbar。今天主要介绍Snackbar新控件的使用,以及三种提示信息展示方…

android开发之SnackBar的使用

SnackBar是一个类似于Toast的东西,它也有显示时长,但是比Toast更加灵活,同时,我们还可以给SnackBar设置点击事件,那么我们今天就来看看怎么用吧! 先来一张效果图: 这种效果大家可能在一些App中…

Snackbar-Android M新控件

概述 查看官方API Snackbar 是 Android design support library 中的另一个组件。使用 Snackbar,可以在屏幕底部快速的显示一条消息,大体与 Toast 相同,但多了几分灵活性: 一小段时间之后、或者用户与屏幕触发交互,S…

Android Snackbar使用方法及小技巧-design

Snackbar和Toast相似,都是为了给用户提供交互信息,Snackbar是固定在底部的,显示时从下往上滑出 要使用Snackbar,需要在项目的build.gradle中添加依赖 dependencies {compile com.android.support:design:23.4.0 } Snackbar的使用…

Android 快别用Toast了,来试试Snackbar

🔥 应用场景 Toast提示默认显示在界面底部,使用Toast.setGravity()将提示显示在中间,如下: Toast toast Toast.makeText(this, str, Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();运行在在Android …