轻源码

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 微信小程序 查看主题

微信小程序实用小技巧,设置头像,数据存储与取值

发布者: gxya | 发布时间: 2018-6-4 06:09| 查看数: 7244| 评论数: 1|帖子模式

一:实用小技巧

作者:朕君无戏言,来自原文地址 
CSS: 
实现渐变色 

第一个是起点颜色,慢慢过渡到第二个颜色 
从上到下的线性渐变: 
background: linear-gradient(red, blue); 
从左到右的线性渐变: 
background: linear-gradient(to right, red , blue);

裁圆角

设置弧度 顺序是 左上角 右上角 右下角 左下角 (顺时针) 
border-radius: 3px 0px 0px 3px; 
JS: 
调用电话

  1. //拨打手机
  2. calling:function(event){
  3. console.log('拨打手机')
  4. console.log(event)
  5. var that = this;
  6. wx.makePhoneCall({
  7. phoneNumber:that.data.phone, //此号码并非真实电话号码,仅用于测试
  8. success:function(){
  9. console.log("拨打电话成功!")
  10. },
  11. fail:function(){
  12. console.log("拨打电话失败!")
  13. }
  14. })
  15. },

下拉刷新,上拉加载更多

1)首先在要刷新类的.json文件里添加

  1. {
  2. "enablePullDownRefresh": true
  3. }

2)然后在js里实现"onPullDownRefresh"和"onReachBottom"方法即可

下拉事件

  1. onPullDownRefresh: function() {
  2. console.log('刷新');
  3. },

上拉事件

  1. onReachBottom: function() {
  2. console.log(' 下一页');
  3. },

注意:刷新可能会和scroll-view控件冲突

二:设置头像

作者:KoalaShane,来自原文地址 
最近在开发微信小程序 ,今天就记录下关于微信小程序怎么换头像的。

首先,小程序提供了自己的视图层描述语言 WXML 和 WXSS,以及基于 JavaScript 的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,可以让开发者可以方便的聚焦于数据与逻辑上。

整个系统分为两块视图层(View)和逻辑层(App Service)。简单的来说,就是不能使用html 、div 、p等等这些标签。另外,小程序使用FLex布局,关于Flex布局教程,

这是做好的一个页面,现在需要点击头像,更换自己喜欢的头像。

代码截图:

还是贴了代码,方便以后复制粘贴,哈哈。

  1. <view class="info-items" bindtap="setPhotoInfo">
  2. <text>头像</text>
  3. <view class="infotext">
  4. <image wx:if="{{imgUrl!=null}}" class="userinfo-avatar" src="{{imgUrl}}" background-size="cover"></image>
  5. <image wx:else class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
  6. <image class="menu-item-arrow" src="/image/arrowright.png"></image>
  7. </view>
  8. </view>

bindtap是事件绑定,相当于javascript里的onclick, 对最外层的view绑定了setPhotoInfo方法,方便用户点击所以绑定在最外层。 
添加了一个变量imgurl,对image进行判断,如果imgurl不为空,则显示我们上传的图片,如果为空,就使用用户自己的头像,userInfo.avatarUrl 是获取用户头像。setPhotoInfo方法中,调用微信获取头像的API【wx.chooseImage】。

代码截图:

设置imgurl默认为空

that.setData({imgUrl:tempFilePaths}) 获取到上传的文件,赋值给imgurl。

页面完整WXML:

  1. <!--pages/more/info/info.wxml-->
  2. <view class="container">
  3. <view class="info-cont">
  4. <view class="infoMain">
  5. <view class="info-items" bindtap="setPhotoInfo">
  6. <text>头像</text>
  7. <view class="infotext">
  8. <image wx:if="{{imgUrl!=null}}" class="userinfo-avatar" src="{{imgUrl}}" background-size="cover"></image>
  9. <image wx:else class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
  10. <image class="menu-item-arrow" src="/image/arrowright.png"></image>
  11. </view>
  12. </view>
  13. <view class="info-items" bindtap="setName">
  14. <text>名字</text>
  15. <view class="infotext">
  16. <text class="info-motto">{{infoname}}</text>
  17. <image class="menu-item-arrow" src="/image/arrowright.png"></image>
  18. </view>
  19. </view>
  20. <view class="info-items">
  21. <text>性别</text>
  22. <view class="infotext">
  23. <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}" class="info-motto">
  24. <view class="picker">
  25. {{array[index]}}
  26. </view>
  27. </picker>
  28. <image class="menu-item-arrow" src="/image/arrowright.png"></image>
  29. </view>
  30. </view>
  31. <view class="info-items">
  32. <text>手机号</text>
  33. <view class="infotext">
  34. <text class="info-motto">13812345678</text>
  35. </view>
  36. </view>
  37. <view class="info-items" bindtap="getregion">
  38. <text>地区</text>
  39. <view class="infotext">
  40. <text class="info-motto">{{address}}</text>
  41. <image class="menu-item-arrow" src="/image/arrowright.png"></image>
  42. </view>
  43. </view>
  44. </view>
  45. <button type="warn" bindtap="warn" class="buttonExit" > 退出 </button>
  46. </view>
  47. </view>

页面完整WXSS:

  1. /* pages/more/info/info.wxss */
  2. .info-cont{
  3. border-top:solid 1px #f0f0f0;
  4. padding-top: 30rpx;
  5. display: flex;
  6. flex-direction: column;
  7. }
  8. .infoMain{
  9. border-bottom:solid 1px #f0f0f0;
  10. display: flex;
  11. background-color: #fff;
  12. flex-direction: column;
  13. margin-bottom: 30rpx;
  14. }
  15. .info-items{
  16. display: flex;
  17. justify-content: space-between;
  18. align-items: center;
  19. padding:20rpx 40rpx;
  20. border-top:solid 1px #f0f0f0;
  21. }
  22. .infotext{
  23. display: flex;
  24. align-items: center;
  25. }
  26. .userinfo-avatar {
  27. width: 128rpx;
  28. height: 128rpx;
  29. margin: 0 20rpx;
  30. border-radius: 50%;
  31. }
  32. .info-motto{
  33. margin: 0 20rpx;
  34. color:#888;
  35. }
  36. .buttonExit{
  37. margin:0 40rpx;
  38. }

三:数据存储与取值

作者:KoalaShane,来自原文地址 
在小程序开发的过程,经常要需要这个页面输入的数据,在下一个页面中进行取值赋值。

比如:

在A页面input输入框,输入电话号码,点击添加。需要在B页面电话区域中,显示刚刚输入的电话号码。

因为这是两个页面,就需要先存储,再取值。微信小程序提供了数据存储的API,wx.setStorage(OBJECT) 可以将数据存储在本地缓存中指定的 key 中,如果重复会覆盖掉原来该 key 对应的内容。

思路是,在A页面,使用bindinput获取input输入的值,赋值给一个变量(自定义),点击添加按钮时,如果变量不为空,将变量的值存储在本地缓存中,在B页面,使用wx.getStorage(OBJECT) 方法取值;

ps : 源代码在页面底部

代码如下:

对input输入框,绑定事件bindinput="bindKeyInput",设置value="{{inputValue}}",因为电话号码为数字,设置type="number"。对按钮添加点击事件bindtap="addbtn"

在JS文件中添加代码

B页面代码

在JS文件中,声明变量addtel。在页面切换过来的时候,取出我们刚存储的值,赋值给变量addtel。在需要显示电话号码的地方,用变量来接收。

在JS文件中添加代码

  1. data:{
  2. addtel : ''
  3. }

这里在onShow的方法中进行取值,当小程序启动,或从后台进入前台显示,就会触发 onShow。

不过,每个微信小程序都可以有自己的本地缓存,使用这些方法时,要注意本地缓存最大为10MB,wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)可以对本地缓存进行设置、获取和清理。。

也可以使用wx.clearStorage(wx.clearStorageSync)来清理缓存。

代码写完之后,进行测试。

在输入框中输入电话号码,点击添加。

OK,取值成功。

A页面源代码:

  1. <view class="add-page">
  2. <input placeholder="输入手机号添加客户" type="number" bindinput="bindKeyInput" value="{{inputValue}}" />
  3. <button type="warn" class="add-btn" bindtap="addbtn" >添加</button>
  4. </view>
  1. var app = getApp()
  2. Page({
  3. data: {
  4. inputValue:''
  5. },
  6. bindKeyInput:function(e){
  7. this.setData({
  8. inputValue: e.detail.value
  9. })
  10. },
  11. addbtn:function(){
  12. if(this.data.inputValue){
  13. wx.redirectTo({
  14. url: '../ordered/ordered'
  15. })
  16. wx.setStorage({
  17. key:"addTel",
  18. data:this.data.inputValue
  19. })
  20. }else{
  21. wx.showModal({
  22. title: '手机号为空',
  23. content: '请输入手机号码',
  24. success: function(res) {
  25. if (res.confirm) {
  26. console.log('用户点击确定')
  27. }
  28. }
  29. })
  30. }
  31. },
  32. onload:function(){
  33. //onload
  34. }
  35. })

B页面源代码:

  1. <view class="menu-item">
  2. <navigator class="menu-item-main" >
  3. <text class="menu-item-name">电话</text>
  4. <view class="ordtel">
  5. <text class="ordtext">{{addtel}}</text>
  6. <image class="menu-item-icon" src="/image/tel.png"></image>
  7. </view>
  8. </navigator>
  9. </view>
  1. var app = getApp()
  2. Page({
  3. data:{
  4. addtel : ''
  5. },
  6. onShow:function(){
  7. var that = this;
  8. wx.getStorage({
  9. key: 'addTel',
  10. success: function(res) {
  11. console.log(res.data)
  12. that.setData({
  13. addtel:res.data
  14. })
  15. }
  16. })
  17. }
  18. })

其他相关资料可以查阅小程序官方API,

最新评论

初夏ゞ-暄莫 发表于 2022-6-22 11:16
音乐编程入门教程

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表