我的第一个微信小程序(手机记事本)
2018-07-08 11:51
232 查看
写在前面--这里我借鉴了一位博客的代码,可惜我忘记他的名字了,只能匿名地道声“谢谢!". 如果你看到了感觉我侵犯了你"版权",可以告诉我,我会及时删除相关代码。我在借鉴这位朋友的代码基础上做了部分修改,实现本程序。我做了测试,可以保证绝对可以运行。后面也许我还会完善,增加更多功能。各位读者,如果你有兴趣继续修改,我表示赞同。我发布在这里,只是希望大家一起学习进步!
本程序一共3页,Page1:Index (在原来默认的工具建立的Index页的基础上改编而成)Page2:NoteEdit(我新建立的一页)Page3:Logs (完全是原来程序工具建立项目时默认生成的,我没有做任何修改,所以我不打算提供Logs的代码)
运行效果
Page1:
Page2
关于背景,你可以上百度搜索"手机壁纸",选择几张图你喜欢的,as you like. 然后保存到 \pages\image里,改名为 111.jpg 和 222.jpg
Page1-- Index.mxml
<!--背景--> <image class="des-image" src="{{image}}"></image> <!--底部滚动--> <scroll-view class="des-scr" scroll-y="true" bindscroll="scroll"> <!--循环view--> <block wx:for="{{desArr}}"> <navigator url="../NoteEdit/NoteEdit?des={{item.des}}&time={{item.time}}&image={{image}}&id={{item.id}}&revise=1"> <view class="des-view" bindtap="toiletDetails" id="{{index}}"> <text class="des-text">{{item.des}}</text> <text class="des-tiemText">{{item.time}}</text> </view> </navigator> </block> </scroll-view> <!--添加按钮--> <navigator url="../logs/logs?des=&time=2017-01-09&image={{image}}&id=-1&revise=0"> <button class="new-btn" bindtap="newBtnDown">+</button> </navigator>Page1-- Index.wxss
page{ height: 100%; } .des-image{ position:absolute; width: 100%; height: 100%; } .des-scr{ width: 100%; height: 100%; } .des-view{ margin: 5%; width: 90%; height: 180rpx; border:1px solid orange; } .des-text{ display: block; margin:20rpx; height: 80rpx; overflow: hidden; } .des-tiemText{ display: block; margin-right: 20rpx; margin-bottom: 20rpx; height: 40rpx; text-align: right; } .new-btn{ position:absolute; bottom: 200rpx; right: 0rpx; width: 80rpx; height: 80rpx; background: darkorange; border-radius: 50%; font-size: 48rpx; line-height:80rpx; }Page1-- Index.js
//index.js //获取应用实例 const app = getApp() Page({ data: { today: '',//当天日期 image: '/pages/image/111.jpg',//背景图片 desArr: []//数据源数组 }, //Zha: 取得时间日期信息 getNowFormatDate() { //获取当天日期 var date = new Date(); var seperator1 = "-"; var month = date.getMonth() + 1; var strDate = date.getDate(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { strDate = "0" + strDate; } var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate return currentdate; }, //Zha: 点击进入添加note的详细界面 newBtnDown() { //跳转页面到 NoteEdit wx.navigateTo({ url: '../NoteEdit/NoteEdit' }) }, onLoad: function (options) { //-监听页面加载 //获取缓存内容 this.setData({ desArr: wx.getStorageSync('oldText') }) if (this.data.desArr == null && this.data.desArr == '') { //如果没有缓存则为空 this.setData({ desArr: [] }) } //获取当天日期 var day = this.getNowFormatDate() this.setData({ today: day }) }, onShow: function () { // 生命周期函数--监听页面显示 //获取当前缓存 var arrayA = wx.getStorageSync('oldText'); var isChange = wx.getStorageSync('isChange'); if (arrayA.length != this.data.desArr.length) { //如果数量改变从新赋值 this.setData({ desArr: arrayA }) } else if (isChange == 1) { wx.setStorageSync('isChange', 0); this.setData({ desArr: arrayA }) } }, onShareAppMessage: function () { // 用户点击右上角分享 return { title: '文笔记+', // 分享标题 desc: '我们的功能不仅笔记', // 分享描述 path: 'path' // 分享路径 } }, cancelTap(e) { //删除按钮 console.log(e) } })
Page2-- NoteEdit.wxml
<!--背景--> <image class="the-image" src="{{image}}"></image> <!--按钮--> <text class="the-text">{{time}}</text> <button class="the-btn" bindtap="btnDown">保存</button> <!--输入框--> <view class="the-view"> <textarea class= "the-textarea" bindinput="bindTextAreaBlur" style=" margin: 5%;width: 90%;height: 90%" auto-focus value="{{des}}"maxlength="-1" cursor-spacing="0"> </textarea> </view>Page2-- NoteEdit.wxss
/* pages/NoteEdit/NoteEdit.wxss */ page{ height: 100%; } .the-image{ position:absolute; width: 100%; height: 100%; } .the-text{ position:absolute; left: 5%; top: 3.5%; font-size: 28rpx; text-align: left; } .the-btn{ font-size: 24rpx; position:absolute; right: 5%; top: 2%; height: 5%; width: 20% } .the-view{ position:absolute; top: 7%; width: 100%; height: 86%; } .the-textarea{ overflow:hidden; }Page2-- NoteEdit.js
Page({ data: { time: '',//日期 image: '/pages/image/222.jpg',//背景 textAreaDes: '',//输入的内容 revise: '',//是不是修改 id: '' }, btnDown() { //保存按钮 if (this.data.textAreaDes.length == 0) { return; } //获取本地缓存 var oldText = wx.getStorageSync('oldText'); if (oldText != null && oldText != '') { if (this.data.revise == '1') { //如果是修改的,循环缓存数组,找到相应id更改 console.log(oldText) for (var i = 0; i < oldText.length; i++) { var dic = oldText[i]; if (dic.id == this.data.id) { oldText[i] = { 'des': this.data.textAreaDes, time: dic.time, 'id': dic.id }; console.log(oldText) //存入缓存 wx.setStorageSync('oldText', oldText); wx.setStorageSync('isChange', 1); return; } } } else { //记录是内容的id var numID = wx.getStorageSync('oldTextID'); if (numID == this.data.id) { return; } //添加更多缓存 oldText.push({ 'des': this.data.textAreaDes, time: this.data.time, 'id': numID }); //id自增 numID++; wx.setStorageSync('oldTextID', numID); this.setData({ id: numID }) } } else { //如果没有缓存 oldText = [{ 'des': this.data.textAreaDes, time: this.data.time, 'id': 0 }]; //保存id wx.setStorageSync('oldTextID', 1); this.setData({ id: 1 }) } //存入缓存 wx.setStorageSync('oldText', oldText); }, bindTextAreaBlur(e) { //当输入的文字改变走这个方法 //记录输入的文字 this.setData({ textAreaDes: e.detail.value }) }, onLoad: function (options) { // 生命周期函数--监听页面加载 this.setData({ des: options.des, time: options.time, image: options.image, revise: options.revise, id: options.id }) }, onShareAppMessage: function () { // 用户点击右上角分享 return { title: '文笔记+', // 分享标题 desc: '爱的再多也记录不够', // 分享描述 path: 'path' // 分享路径 } } })最后,祝你测试顺利! 阅读更多
相关文章推荐
- 使用记事本开发第一个java程序
- 微信小程序的背景图片在手机上不显示?
- 用记事本写第一个Servlet程序
- 用记事本写java的第一个程序hello world 以及eclipse的使用方法
- Qt实现记事本的打开和保存功能(第一个实用的Qt小程序)
- 第一个手机程序
- 微信小程序解密getPhoneNumber手机号,小程序解码getPhoneNumber获取手机号码——玩转小程序114
- 微信小程序开发--记事本 收藏夹
- [置顶] 微信小程序通过getPhoneNumber后台PHP解密获取用户手机号码
- 动手写第一个微信小程序
- J2ME入门程序--第一个HELLOWORLD手机程序
- 3. 编写的第一个android HelloWorld程序如何在手机上面调试运行
- 自己写的第一个手机程序播放器Solomon
- 【微信小程序】在手机上查看调试微信小程序
- 微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
- 微信小程序实现添加手机联系人功能示例
- 第一个小程序云笔记通过微信审核分享
- 微信小程序获取手机系统信息的方法【附源码下载】
- 微信小程序例子——获取手机屏幕亮度
- 微信小程序开发中按下自己手机的返回按键是直接退出小程序而不是返回上级页面