前言:

现在小程序越来越火,由于个人兴趣爱好平时喜欢斗图,然后就有了这个小程序的开发计划,这篇文章主要介绍自己开发一款小程序经验也踩过的坑。

准备:

1,域名和服务器(域名必须要申请https)阿里云,腾讯云,七牛都有免费ssl证书可以下载自己可以搭建,我用的是腾讯云的。

2,后台开发提供数据接口小程序调用(我后台是用的开源后台自己修改的技术是Springboot)

3,注册一个小程序账号(这里就不多说了,注册地址:https://mp.weixin.qq.com/cgi-bin/registermidpage?action=index&lang=zh_CN&token=)

4,下载小程序开发工具登录账号搭建自己的小程序。

小程序组件以及开放api大家可以上去多学习学习:https://developers.weixin.qq.com/miniprogram/dev/api/

后端开发:

我后端主要用java编写,不过你也可以用其他语言,主要看你自己选择。后台主框架为Springboot+mybatis,开发工具idea,服务器用的腾讯云,开发好后台直接打成war包发布到服务器上面。

pom.xml 依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis-springboot-version}</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql-version}</version><!--$NO-MVN-MAN-VER$--></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid-version}</version></dependency><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>${quartz-version}</version><exclusions><exclusion><groupId>com.mchange</groupId><artifactId>c3p0</artifactId></exclusion></exclusions></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>${commons-lang-version}</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>${commons-fileupload-version}</version><exclusions><exclusion><artifactId>commons-io</artifactId><groupId>commons-io</groupId></exclusion></exclusions></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>${commons-io-version}</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>${commons-codec-version}</version><!--$NO-MVN-MAN-VER$--></dependency><dependency><groupId>commons-configuration</groupId><artifactId>commons-configuration</artifactId><version>${commons-configuration-version}</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>${aspect-version}</version><!--$NO-MVN-MAN-VER$--></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>${aspect-version}</version><!--$NO-MVN-MAN-VER$--></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>${shiro-version}</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>${shiro-version}</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>${httpclient-version}</version><!--$NO-MVN-MAN-VER$--></dependency><dependency><groupId>net.sourceforge.nekohtml</groupId><artifactId>nekohtml</artifactId><version>${nekohtml-version}</version><!--$NO-MVN-MAN-VER$--></dependency><dependency><artifactId>velocity</artifactId><exclusions><exclusion><artifactId>commons-lang</artifactId><groupId>commons-lang</groupId></exclusion></exclusions><groupId>org.apache.velocity</groupId><version>${velocity-version}</version></dependency><!--腾讯云图片上传需要--><dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>${qcloud-version}</version><exclusions><exclusion><artifactId>slf4j-log4j12</artifactId><groupId>org.slf4j</groupId></exclusion></exclusions></dependency><!--七牛云上传图片--><dependency><groupId>com.qiniu</groupId><artifactId>qiniu-java-sdk</artifactId><version>[7.2.0, 7.2.99]</version></dependency><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.59</version></dependency><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6</version></dependency><dependency><groupId>org.jdom</groupId><artifactId>jdom</artifactId><version>2.0.2</version></dependency><dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.9</version></dependency></dependencies>

后台项目目录:

小程序主页数据接口:

@RequestMapping("/getBiaoQingInfo")public R getBiaoQingInfo() {//小编推荐List<BiaoqingbaoEntity> xbbiaoqing = biaoqingbaoService.getBiaoQingBaoByInfo(0);for (BiaoqingbaoEntity bq:xbbiaoqing) {bq.setThrid_image_path(tencent_image_path+"/"+bq.getFileImagePath());}//热门推荐List<BiaoqingbaoEntity> hotbiaoqing = biaoqingbaoService.getBiaoQingBaoByInfo(1);for (BiaoqingbaoEntity bq:hotbiaoqing) {bq.setThrid_image_path(tencent_image_path+"/"+bq.getFileImagePath());}//真人表情List<BiaoqingbaoEntity> zrbiaoqing = biaoqingbaoService.getBiaoQingBaoByInfo(2);for (BiaoqingbaoEntity bq:zrbiaoqing) {bq.setThrid_image_path(tencent_image_path+"/"+bq.getFileImagePath());}//主页热门关键字List<BiaoQingBaoTipsEntity> biaoqingtips = biaoQingbaoTipsService.getBiaoQingTipsAll();//主页bannerList<BiaoQingBanner> banner_list = biaoQingbaoTipsService.getBiaoQingBannerList();Map<String, Object> result = new HashMap<String, Object>();result.put("xbbiaoqing", xbbiaoqing);result.put("hotbiaoqing", hotbiaoqing);result.put("zrbiaoqing", zrbiaoqing);result.put("biaoqingtips", biaoqingtips);result.put("bannerList", banner_list);result.put("success", true);return R.ok(1,result);}

springboot的入口程序:

@SpringBootApplication
public class DpApplication extends SpringBootServletInitializer {public static void main(String[] args) {SpringApplication application = new SpringApplication(DpApplication.class);application.setBannerMode(Banner.Mode.OFF);application.run(args);}@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {application.bannerMode(Banner.Mode.OFF);return application.sources(DpApplication.class);}}

后台部分截图:

小程序部分

主界面 index.wxml

<!-- 推荐 -->
<view class='main_app'><swiper class="swiper" indicator-dots="true" autoplay="true" interval="5000" duration="1000">    <view wx:for="{{bannerList}}" wx:for-index="index" wx:for-item="item" wx:key="item" data-keyword="{{item}}"bindtap="banner_btn">    <swiper-item>    <image src="{{item.url}}" class="slide-image" mode="aspectFill" /></swiper-item>    </view>
</swiper> <view class="wxSearch-section"><view class="wxSearch-pancel"><input bindinput="wxSearchInput" bindfocus="wxSerchFocus" value=""  bindblur="wxSearchBlur" class="wxSearch-input" placeholder="请输入表情关键词"/><button class="wxSearch-button"  bindtap="wxSearchFn" size="mini" plain="true">搜索</button></view>
</view><!-- 热搜关键字 -->
<loading hidden="{{loadingHidden}}">加载中...
</loading><view class="list-item"><view class="hot-tips-pancel"><view class='left_hr'></view><view class="hot_tips_text">热门搜索</view><view class="hot_tips_text-more" bindtap="huanyihuan">换一换</view></view>
<view class='tips-view'><view wx:for="{{biaoqingtips}}" wx:for-item="item" wx:key="item" class="search-keyword-item" data-keyword="{{item}}" bindtap="searchByKeyword">{{item.biaoqingTips}}</view>
</view></view>  <!--小编推荐 start -->
<view class="list-item">
<view class="layout_vertical"><view class="hot-tips-pancel"><view class='left_hr'></view><view class="hot_tips_text">小编推荐</view><view class="hot_tips_text-more" bindtap='xiaobian_btn_more'>更多>></view></view><view class="hot-tips-pancel-image"><view wx:for="{{xbbiaoqing}}" wx:for-item="item" wx:key="item" data-keyword="{{item}}" bindtap="image_btn_info"><view class='image_kuang_right'><view><image class="image-kuan"  src="{{item.thrid_image_path}}"></image></view><view class='bqb_tips'>{{item.title}}</view></view></view></view></view>
</view>
<!--end--><!--热门推荐 start -->
<view class="list-item"><view class="layout_vertical"><view class="hot-tips-pancel"><view class='left_hr'></view><view class="hot_tips_text">热门推荐</view><view class="hot_tips_text-more" bindtap='hot_btn_more'>更多>></view></view><view class="hot-tips-pancel-image"><view wx:for="{{hotbiaoqing}}" wx:for-item="item" wx:key="item" data-keyword="{{item}}" bindtap="image_btn_info"><view class='image_kuang_right'><view><image class="image-kuan"  src="{{item.thrid_image_path}}"></image></view><view class='bqb_tips'>{{item.title}}</view></view></view></view></view>
</view>
<!--end--><!--热门推荐 start -->
<view class="list-item"><view class="layout_vertical"><view class="hot-tips-pancel"><view class='left_hr'></view><view class="hot_tips_text">真人表情</view><view class="hot_tips_text-more" bindtap='zhenren_btn_more'>更多>></view></view><view class="hot-tips-pancel-image"><view wx:for="{{zrbiaoqing}}" wx:for-item="item" wx:key="item" data-keyword="{{item}}" bindtap="image_btn_info"><view class='image_kuang_right'><view><image class="image-kuan"  src="{{item.thrid_image_path}}"></image></view><view class='bqb_tips'>{{item.title}}</view></view></view></view></view>
</view>
<!--end--></view>

主页index.js

//index.js
var app = getApp()
Page({data: {bannerList: '',search_value: '',biaoqingtips:'',hotbiaoqing: '',xbbiaoqing: '',zrbiaoqing: '',loadingHidden: true,},wxSearchInput:function(e){this.setData({search_value: e.detail.value})},//真人表情zhenren_btn_more: function(e) {wx.navigateTo({url: '../seach_detail/seach_detail?types=2&search_value=',})},//小编推荐xiaobian_btn_more: function(e) {wx.navigateTo({url: '../seach_detail/seach_detail?types=0&search_value=',})},//点击主页热门hot_btn_more: function(e) {wx.navigateTo({url: '../seach_detail/seach_detail?types=1&search_value=',})},//点击主页bannerbanner_btn: function(e) {var names = e.currentTarget.dataset.keyword.names;console.info(names);wx.navigateTo({url: '../seach_detail/seach_detail?type=&search_value=' + names,})},//搜索wxSearchFn: function (e) {wx.navigateTo({url: '../seach_detail/seach_detail?search_value=' + this.data.search_value,})},//点击关键字searchByKeyword: function (e) {var name = e.currentTarget.dataset.keyword.biaoqingTips;wx.navigateTo({url: '../seach_detail/seach_detail?search_value=' + name,})},//热门图片点击image_btn_info: function (e) {//console.info(e.currentTarget);var image_info = e.currentTarget.dataset.keyword.thrid_image_path;wx.navigateTo({url: '../image_detail/image_detail?image_info=' + image_info,})},//点击换一换huanyihuan: function (e) {//获取远程数据var that = thiswx.request({url: getApp().data.servsers+'/dp/sys/web/getBiaoQingInfo',method: 'GET',data: {},header: {'Accept': 'application/json'},success: function (res) {console.log(res);that.setData({biaoqingtips: res.data.biaoqingtips,hotbiaoqing: res.data.hotbiaoqing,xbbiaoqing: res.data.xbbiaoqing,zrbiaoqing: res.data.zrbiaoqing,bannerList: res.data.bannerList})}})},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {//显示加载数据this.setData({loadingHidden: false});//获取远程数据var that = thiswx.request({url: getApp().data.servsers+'/dp/sys/web/getBiaoQingInfo',method: 'GET',data: {},header: {'Accept': 'application/json'},success: function (res) {console.log(res);that.setData({loadingHidden: true,biaoqingtips: res.data.biaoqingtips,hotbiaoqing: res.data.hotbiaoqing,xbbiaoqing: res.data.xbbiaoqing,zrbiaoqing: res.data.zrbiaoqing,bannerList: res.data.bannerList})}})},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {},/*** 生命周期函数--监听页面隐藏*/onHide: function () {},/*** 生命周期函数--监听页面卸载*/onUnload: function () {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function () {},/*** 用户点击右上角分享*/onShareAppMessage: function () {},loadingTap: function () {this.setData({loadingHidden: false});var that = this;setTimeout(function () {that.setData({loadingHidden: true});that.update();}, 3000);}
})

小程序工具截图:

部分小程序截图:

零基础微信完整版小程序开发之微信表情包小程序前端+后台源码(java)相关推荐

  1. 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(二)

    书城项目 JavaEE三层架构介绍 搭建书城项目环境 IDEA工具Debug的使用 JSP 什么是jsp jsp页面的本质 jsp的page指令 虽然 / 在浏览器解析的时候是端口号,但是jsp本质最 ...

  2. 基于微信小程序+爬虫制作一个表情包小程序

    跟朋友聊天斗图失败气急败坏的我选择直接制作一个爬虫表情包小程序,从源头解决问题,从此再也不用担心在斗图中落入下风 精彩专栏持续更新↓↓↓ 微信小程序实战开发专栏 一.API 1.1 项目创建 1.2 ...

  3. 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(一)

    HTML和CSS ctrl + shift + / 在同一行代码中的后半截产生注释 HTML标签的介绍 标签拥有自己的属性,分为 基本属性 和 事件属性 标签的基本属性 :bgcolor=" ...

  4. Python零基础爬虫之回车桌面壁纸并实现自动换壁纸(内附完整源码)

    前言 嗨喽,大家好,这里是魔王~ [课题]: Python零基础爬虫之回车桌面壁纸 [课题介绍]: 壁纸不应该只是一张图片,它应该是一门哲学 回车桌面网100000张无水印,高分辨率,电脑桌面壁纸, ...

  5. 单片机零基础入门(9-1)实战:模块化编程(模块化两个案例含源码--以及无法显示头文件(.h)的解决方案)

    单片机零基础入门(9-1)实战:模块化编程-(以及无法显示头文件(.h)的解决方案) 本文作为单片机零基础入门(8-5)模块化编程的拓展和补充,比前面的单片机零基础入门(8-5)模块化编程更为详细. ...

  6. 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(三)

    EL表达式 什么是EL表达式 <%@ page contentType="text/html;charset=UTF-8" language="java" ...

  7. 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(四)

    文件的上传和下载 文件上传的介绍 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns= ...

  8. c语言零基础入门(完整版)

    1软件下载 官网下载:  https://sourceforge.net/projects/orwelldevcpp/ 百度网盘:https://pan.baidu.com/s/1mhHDjO8    ...

  9. 《Java零基础入门到精通(集合,泛型,IO,反射,JVM, 源码)【渡一教育】》思维导图版笔记(完结)

    所有思维导图的xind和png文件都可以点击下面链接去下载: 链接: https://pan.baidu.com/s/1RHBHgyHY6TZqWQ_HIO8Wew 提取码: jxrd 复制这段内容后 ...

最新文章

  1. DIY Roomba Virtual Wall
  2. 395. Longest Substring with At Least K Repeating Characters
  3. 下列支持mysql中文字符_MySQL中文支持问题
  4. amazeui学习笔记--css(常用组件1)--小徽章Badge
  5. 关于日历的一个超级存储过程
  6. android bitmap to base64_Android基础(11)—你需要知道的内存知识
  7. IntelliJ Idea学习笔记003---IDEA中打开Run DashBoard的方法
  8. fabric.js自定义字体的引入
  9. js动态获取屏幕宽高度
  10. Windows Dos命令
  11. 非线性光纤光学_光学青年| 刘兆军教授与晶体光纤激光技术研究,做核心材料和器件...
  12. 手把手教你注册和备案域名
  13. Java基于SpringBoot的牛客网社区项目实现详解(上)
  14. Cesium资料大全
  15. Python的特殊属性和用法
  16. linux网络编程中端口号和ip地址转换方法
  17. 子查询及其分类(标量子查询+列子查询+行子查询+表子查询)
  18. 安卓圆形图片控件CircleImageView的使用
  19. 设计模式-鸭子类型1
  20. 电信增值业务学习笔记13——增值业务管理

热门文章

  1. cocos2dx在Android下如何接入91SDK
  2. SAP MM 公司代码间质检库存的STO (II)
  3. 谷歌浏览器安装查看AXURE RP插件
  4. 动态多目标优化--基于决策变量分类的动态多目标进化算法 笔记
  5. 群体进化技术原理和研究思路
  6. 中国超级计算机计算圆周率,人类的超级计算机一直在计算圆周率,到底能不能算完?解疑惑了...
  7. imacros:运行javascript
  8. ipad无法充电怎么办_ipad不能充电怎么办 ipad不能充电解决方法【图文】
  9. Linux的excel函数怎么编写,Excel中怎么编写自定义函数
  10. 参数校验(Hibernate-Validation)