“婚礼邀请函”小程序开发过程

这篇具有很好参考价值的文章主要介绍了“婚礼邀请函”小程序开发过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、开发前准备

(一)需求分析

要求该小程序有以下功能:

1.邀请函页面:新郎和新娘的电话、婚礼时间、婚礼地点

2.照片页面:新郎和新娘的幸福照

3.美好时光页面:采用视频的方式记录新人的相历程

4.地图页面:通导航查看婚礼地点的路线图

5.宾客信息页面:参加婚礼的宾客填写个人信息,送给一些祝福语等

该小程序所用技术的扩展用途

1.照片、视频:记录父母的婚纱照、自己的童年照、家人的游玩视频

2.地图:旅游小程序的重要组成部分

3.信息录入:登录、注册功能的实现

(二)项目结构

“婚礼邀请函”小程序开发过程

(三)项目初始化(app.json配置文件的编写)

通过编写app.json文件,完成项目的基本配置

{
    "pages": [
        "pages/index/index",
        "pages/picture/picture",
        "pages/video/video",
        "pages/map/map",
        "pages/guest/guest"
    ],
    "window": {
        "backgroundTextStyle": "light",
        "navigationBarBackgroundColor": "#ff4c91",
        "navigationBarTextStyle": "white",
        "enablePullDownRefresh": false
    },
    "tabBar": {
        "color": "#ccc",
        "selectedColor": "#ff4c91",
        "borderStyle": "white",
        "backgroundColor": "#ffffff",
        "list": [
            {
            "pagePath": "pages/index/index",
            "iconPath": "images/invite.png",
            "selectedIconPath": "images/invite.png",
            "text": "邀请函"
        },
        {
            "pagePath": "pages/picture/picture",
            "iconPath": "images/marry.png",
            "selectedIconPath": "images/marry.png",
            "text": "照片"
        },
        {
            "pagePath": "pages/video/video",
            "iconPath": "images/video.png",
            "selectedIconPath": "images/video.png",
            "text": "美好时光"
        },
        {
            "pagePath": "pages/map/map",
            "iconPath": "images/map.png",
            "selectedIconPath": "images/map.png",
            "text": "婚礼地点"
        },
        {
            "pagePath": "pages/guest/guest",
            "iconPath": "images/guest.png",
            "selectedIconPath": "images/guest.png",
            "text": "宾客信息"
        }
    ]
    }
}

当前效果图

“婚礼邀请函”小程序开发过程

 二、邀请函界面

主要是页面的实现和音乐播放器的实现,不是重点,以下为效果图

(对于毫无艺术细胞的我来说,开发前端真是要老命,能Copy就Copy吧)

音乐播放器鉴于已经做过,这里放一下模板,以后直接套即可

(1)index.wxml文件如下:

<view class="player player-{{isPlayingMusic ? 'play' : 'pause'}}" bindtap="play">
  <image src="/images/music_icon.png" />
  <image src="/images/music_play.png" />
</view>

(2)index.js文件如下 

Page({
  data: {
    isPlayingMusic: false
  },
  bgm: null,
  music_url: 'http://localhost:3000/1.mp3',
  music_coverImgUrl: 'http://localhost:3000/cover.jpg',
  onReady: function() {
    // 创建getBackgroundAudioManager实例对象
    this.bgm = wx.getBackgroundAudioManager()
    // 音频标题
    this.bgm.title = 'merry me'
    // 专辑名称
    this.bgm.epname = 'wedding'
    // 歌手名
    this.bgm.singer = 'singer'
    // 专辑封面
    this.bgm.coverImgUrl = this.music_coverImgUrl
    this.bgm.onCanplay(() => {
      this.bgm.pause()
    })
    // 指定音频的数据源
    this.bgm.src = this.music_url
  },
  // 播放器的单击事件
  play: function() {
    if (this.data.isPlayingMusic) {
      this.bgm.pause()
    } else {
      this.bgm.play()
    }
    this.setData({
      isPlayingMusic: !this.data.isPlayingMusic
    })
  }
})

两者的绑定通过bingtap="play"实现(绑定点击事件) 

(3)存放音视频文件的服务器通过node.js搭建,下面附上其代码

关于node.js的使用,对其完全不了解的可参考我的博客Node.js学习笔记_清风何渡的博客-CSDN博客

var express = require('express')
var serveIndex = require('serve-index')
var serveStatic = require('serve-static')
var multiparty = require('multiparty')
var finalhandler = require('finalhandler')
var util = require('util')

var LOCAL_BIND_PORT = 3000
var app = express()

app.post('/upload', function(req, res) {
  var form = new multiparty.Form()
  form.encoding = 'utf-8'
  form.uploadDir = './htdocs/upfile'
  form.maxFilesSize = 4 * 1024 * 1024
  form.parse(req, function(err, fields, files) {
    if(err) {
      console.log('parse error: ' + err)
    } else {
      console.log('parse files: ' + JSON.stringify(files))
    }
    res.writeHead(200, {'content-type': 'text/plain;charset=utf-8'})
    res.write('received upload')
    res.end()
  })
})
//配置媒体文件夹
var serve = serveStatic('./htdocs')
app.use('/', serveIndex('./htdocs', {'icons': true}))

app.get('/*', function(req, res) {
    serve(req, res, finalhandler(req, res))
});

console.log(`Start static file server at ::${LOCAL_BIND_PORT}, Press ^ + C to exit`)
app.listen(LOCAL_BIND_PORT)

效果图如下

“婚礼邀请函”小程序开发过程

 背景音乐放的是《告白气球》,太甜了呜呜~

三、照片页面

有用(打算做一个爸妈的婚纱照小程序哈哈~),新颖

采用纵向轮播的方式展示图片,滑动图片可纵向切换

纵向轮播图的实现如下

(1)picture.wxml文件

<swiper indicator-color="white" indicator-active-color="#ff4c91"
    indicator-dots autoplay interval="3500" duration="1000" vertical circular>
    <swiper-item wx:for="{{imgUrls}}" wx:key="*this">
        <image src="{{item}}" mode="aspectFill"/>
    </swiper-item>
</swiper>

swiper组件实现页面可滑动,swip中的标签想必对于英语很好的各位看官来说必然能望名知意叭(主要就是设置轮播时间、指示点颜色、轮播图方向啥的)

注意遍历采用wx:for实现

(2)picture.js文件

Page({
    data: {
      imgUrls: [
        '/images/timg1.jpg',
        '/images/timg2.jpg',
        '/images/timg3.jpg',
        '/images/timg4.jpg'
      ]
    }
  })

(3)picture.wxss文件

swiper{height: 100vh;}
image{width: 100vw;height: 100vh;}

效果图如下

“婚礼邀请函”小程序开发过程

迫不及待要做一个自己的图册了哈哈~ 

四、美好时光页面

在小程序中播放视频有两种方式,一种是使用video插件,一种是使用腾讯视频插件

(一)使用video插件

“婚礼邀请函”小程序开发过程

很简单(相较于音乐播放来说)

(1)video.wxml文件

<video id="myVideo" src="{{src}}">

(2)video.wxss文件

video{width:100vx;}

(3)video.js文件

Page({
    data:{
        src:'http://······/xxx.mp4'
    }
})

(二)使用腾讯视频插件

优点是可以不用自己的服务器存视频,但缺点也很明显,视频时长受限,因此这里不选择该方式

五、婚礼地点页面

地图map组件,很实用

map组件需要给定经纬度,可通过腾讯位置服务网站提供的坐标拾取器获取

腾讯位置服务 - 立足生态,连接未来 (qq.com)

简单的地图页面功能实现如下

(1)map.wxml文件

<map latitude="{{latitude}}" longitude="{{longitude}}"
markers="{{markers}}" bindmarkertap="markertap"/>

(2)map.wxss文件

map{width: 100vw;height: 100vh;}

(3)map.js文件

// pages/map/map.js
Page({
    data:{
        latitude:41.655044,longitude:123.424681,
        markers:[{
            iconPath:'/images/navi.png',id:0,
            latitude:41.655044,longitude:123.424681,
            width:50,height:50
        }]
    },
    markertap:function(){
        wx.openLocation({
          latitude: this.data.latitude,
          longitude: this.data.longitude,
          name:'东北大学浑南校区图书馆',
          address:'辽宁省沈阳市浑南区捷迁路'
        })
    }
})

效果如下

“婚礼邀请函”小程序开发过程“婚礼邀请函”小程序开发过程

 

 六、宾客信息页面

表单提交比较简单,模板消息emm······,先放放叭(鼓捣了半个小时没整好)

(1)guest,wxml文件

<image class="bg" src="/images/bj_2.png">
</image>
<form bindsubmit="formSubmit">
  <view class="content">
    <view>
      <input name="name" bindblur="nameChange" bindtap="allowSubscribe" placeholder-class="phcolor" placeholder="输入您的姓名" />
    </view>
    <view>
      <input name="phone" bindblur="phoneChange" placeholder-class="phcolor" placeholder="输入您的手机号码" />
    </view>
    <view>
      <picker name="num" bindchange="pickerChange" value="{{picker.index}}" range="{{picker.arr}}">
        参加婚礼人数:{{picker.arr[picker.index]}}</picker>
    </view>
    <view>
      <input name="wish" placeholder-class="phcolor" placeholder="输入您的祝福语" />
    </view>
    <button form-type="submit">提交</button>
  </view>
</form>

(2)guest.wxss文件

/* pages/guest/guest.wxss */
.bg {
    width: 100vw;
    height: 100vh;
  }
  
  .content {
    width: 80vw;
    position: fixed;
    left: 10vw;
    bottom: 6vh;
  }
  
  .content > view {
    font-size: 2.8vh;
    border: 1rpx solid #ff4c91;
    border-radius: 10rpx;
    padding: 1.5vh 40rpx;
    margin-bottom: 1.5vh;
    color: #ff4c91;
  }
  
  .content button {
    font-size: 3vh;
    height: 7.5vh;
    line-height: 7.5vh;
    background: #ff4c91;
    color: #fff;
  }
  
  .content picker {
    padding: 0.7vh 0;
  }
  
  .content .phcolor {
    color: #ff4c91;
  }
  

 (3)guest.js文件

// pages/guest/guest.js
Page({
    data:{
        picker:{
            arr:['0','1','2','3','4','5','6'],
            index:1
        }
    },
    pickerChange:function(e){
        this.setData({
            'picker.index':e.detail.value
        })
    },
    // 验证姓名
  nameChange: function(e) {
    this.checkName(e.detail.value)
  },
  // 验证手机号
  phoneChange: function(e) {
    this.checkPhone(e.detail.value)
  },
  // checkName()方法
  checkName: function(data) {
    var reg = /^[\u4E00-\u9FA5A-Za-z]+$/;
    return this.check(data, reg, '姓名输入错误!')
  },
  // checkPhone()方法
  checkPhone: function(data) {
    var reg = /^(((13)|(15)|(17)|(18))\d{9})$/;
    return this.check(data, reg, '手机号码输入有误!')
  },
  // check()方法
  check: function(data, reg, errMsg) {
    if (!reg.test(data)) {
      wx.showToast({
        title: errMsg,
        icon: 'none',
        duration: 1500
      })
      return false
    }
    return true
  }
})

效果图如下

“婚礼邀请函”小程序开发过程

 通篇做下来,还是蛮有趣的,要说复杂的,可能就是服务器的交互和模板消息的使用了,这个以后再说叭~

用时:7h文章来源地址https://www.toymoban.com/news/detail-494773.html

到了这里,关于“婚礼邀请函”小程序开发过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序案例2-3:婚礼邀请函

    “婚礼邀请函” 微信小程序 由4个页面组成,分别是“邀请函”页面、“照片”页面、“美好时光”页面和“宾客信息”页面。每个页面顶部的导航栏和底部的标签栏是公共部分,在每个页面中都会出现;页面中间的部分是页面内容,每个页面的内容都不同。 \\\"邀请函\\\"页面

    2024年02月06日
    浏览(39)
  • 微信小程序 #项目笔记# | 从0到1实现婚礼邀请函小程序

    学习目标: 掌握小程序常用组件的使用 掌握腾讯视频插件的使用 掌握模板消息的使用 掌握背景音乐API、地图API的使用 1.开发前准备 1.1 项目展示 婚礼邀请函小程序由5个页面组成,分别是邀请函页面、照片页面、美好时光页面、婚礼地点页面、宾客信息页面。效果图如下:

    2024年02月03日
    浏览(77)
  • 杭州-区块链前瞻性论坛邀请函​

    2023密码与安全前瞻性论坛邀请函

    2024年02月04日
    浏览(48)
  • html5实现好看的年会邀请函源码模板

    作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/135720875 html5实现好看的年会邀请函源码模板 ,十个界面效果,邀请函、诚挚邀请、关于我们、董事长致词、公司合作方、活动流程、加盟支持、加盟流程、加盟申请、活动信息等。界面展示图文时支持自己设置

    2024年01月21日
    浏览(41)
  • 邀请函 | 区块链如何助力公益?腾讯、深大、微众专家齐聚ESG系列研讨会

    9月5日是我国第七个“中华慈善日”。作为全球最大的公益节日之一,2022年腾讯99公益日也已正式启动。其中,腾讯公益基于腾讯安全区块链,联合企业、行业协会、监管部门打造了公益信用联盟链,由微众区块链提供开源技术支持。 对于公益事业而言,善款去向、信息透明

    2024年02月12日
    浏览(52)
  • 师承AI世界新星|7天获新加坡南洋理工大学访学邀请函

    能够拜师在“人工智能 10 大新星”名下,必定可以学习到前沿技术,受益良多,本案例中的 C 老师无疑就是这个幸运儿。我们只用了 7 天时间就取得了这位 AI 新星导师的邀请函,最终 C 老师顺利获批 CSC ,如愿出国。 C 老师背景: 申请类型: CSC访学 工作背景: 高校老师 教

    2024年02月16日
    浏览(44)
  • 微信小程序背景渐变写法加占比以及微信小程序开发过程中长使用的代码段

    在写微信小程序的过程中,ui设计了一个渐变的背景图,网上一搜很多都只写了怎么样让微信渐变色,但是我的需求就是渐变色而且控制渐变色范围,比如三个颜色一个头部是深蓝,中间浅蓝,最底下是白色,那么直接套用网上的列子(第一段代码),三个色渐变范围是一样

    2024年01月17日
    浏览(46)
  • 微信小程序 | 小程序开发

    🖥️ 微信小程序专栏:小程序开发 初级知识 🧑‍💼 个人简介:一个不甘平庸的平凡人🍬 ✨ 个人主页:CoderHing的个人主页 🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ 👉 你的一键三连是我更新的最大动力❤️ 目录 一、认识小程序开发 什么是小程序? 各个平台小

    2024年01月24日
    浏览(54)
  • 抖音小程序开发教学系列(4)- 抖音小程序组件开发

    在本章中,我们将深入探讨抖音小程序的组件开发。组件是抖音小程序中的基本构建块,它们负责展示数据和与用户交互。了解组件的开发方法和使用技巧是进行抖音小程序开发的重要一步。 抖音小程序提供了许多常用的基本组件,它们分别具有不同的功能和用途。在我们的

    2024年02月09日
    浏览(39)
  • python做微信小程序开发,python怎么开发小程序

    大家好,小编来为大家解答以下问题,python做微信小程序开发,python怎么开发小程序,今天让我们一起来看看吧! 大家好,小编为大家解答用python编写一个小程序的问题。很多人还不知道如何用python做小软件,现在让我们一起来看看吧! 大家好,小编来为大家解答以下问题

    2024年03月12日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包