美文网首页
小程序开发中的一些问题

小程序开发中的一些问题

作者: 李晓通 | 来源:发表于2018-09-27 14:49 被阅读20次

记录一下开发中遇到的小程序问题

问题目录

  1. CanvasContext.fillText自动换行
  2. 当某个页面关闭时返回首页或某个特定页面
  3. text自动换行
  4. 文字过长省略号显示
  5. 分享相关
  6. view宽度自适应
  7. for循环列表改变list中某个值

CanvasContext.fillText自动换行

    var bookName = '很长很长的一个标题很长很长的一个标题很长很长的一个标题很长很长的一个标题'
    var chr = bookName.split(""); //将一个字符串分割成字符串数组
    var temp = "";
    var row = [];
    ctx.setFontSize(18)//设置字体大小
    ctx.setFillStyle("#000")//设置字体颜色
    for (var a = 0; a < chr.length; a++) {
      /**注意,这个130是你自己定义的文字最大宽度,与下面fillText中最后一个参数一致*/
      if (ctx.measureText(temp).width < 130) {
        temp += chr[a];
      } else {
        a--; //这里添加了a-- 是为了防止字符丢失
        row.push(temp);
        temp = "";
      }
    }
    row.push(temp);

    //如果数组长度大于2 则截取前两个
    if (row.length > 2) {
      var rowCut = row.slice(0, 2);
      var rowPart = rowCut[1];
      var test = "";
      var empty = [];
      for (var a = 0; a < rowPart.length; a++) {
        //这里的120可以自己定义,一般来说是定义的宽度-10
        if (ctx.measureText(test).width < 120) {
          test += rowPart[a];
        } else {
          break;
        }
      }
      empty.push(test);
      var group = empty[0] + "..." //这里只显示两行,超出的用...表示
      rowCut.splice(1, 1, group);
      row = rowCut;
    }
    for (var b = 0; b < row.length; b++) {
      ctx.fillText(row[b],30, 30  + b * 20, 130);
    }

当某个页面关闭时返回首页或某个特定页面

比如首页-->B-->C,C想返回的时候直接回到首页,我们可以在C界面中的onUnload方法中实现一个回到首页方法即可

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {
    wx.switchTab({
      url: '../home/home'
    })
  },

text自动换行

text{
word-break: keep-all;//去除中文后面空的占位
word-wrap: break-word;//换行的

文字过长省略号显示

单行的情况

.text-ellipsis-oneline {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

多行的情况,webkit-line-clamp是限制的行数

.text-ellipsis {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; 
  overflow: hidden;
  text-overflow: ellipsis;
}

分享

官方推荐的是使用button让用户自己触发分享事件,开发中可能要判断分享是来自自己定义的按钮还是右上角的转发按钮,所以我们要做一个区分,另外用户是分享到群还是个人也要我们区分,所以在下面直接给出代码。

  1. 首先我们要在wxml中定义button
<button open-type='share'>分享</button>
  1. 在js中定义onShareAppMessage(Object)方法


Page({
  onShareAppMessage: function (res) {
    if (res.from === 'button') {
      // 来自页面内转发按钮
      console.log(res.target)
    }else if(res.from === 'menu'){
      //来自右上角的转发
    }
    return {
      title: '自定义转发标题',
      path: '/page/user?id=123',
      imageUrl:'../../res/img.png',
      success(res){
          if (res.hasOwnProperty('shareTickets')) {
              //分享到群
          } else {
              // 分享到个人
          }      
      }
    }
  }
})

view宽度自适应

给view标签添加一个属性
width:fit-content

for循环列表改变list中某个值

  for (var i = 0; i < list.length; i++) {
      var item = list[i]
      this.setData({
        ['list[' + i + ']']: {
          ...item,
          otherData,
        }
      })
  }

暂时就想到这么多,想到了在写。。。

相关文章

  • 小程序开发当中踩到的坑

    为了参加微信小程序开发大赛,了解了微信小程序的开发,在实际的开发过程中遇到了一些问题,以此记录,避免再犯! 简述 ...

  • 踩坑记-微信小程序

    平时开发中遇到的一些问题,简单整理一下,方便后续开发借鉴。 A:问题描述?Q:解决方案。 A:小程序中,obj.p...

  • 小程序开发整理

    该文档为开发过程中遇到的一些问题以及一些好用的平台,持续更新以及整理中。。。 小程序客服 小程序接收消息和事件 服...

  • 小程序 生成分享图 记录

    最近接手开发了一个小程序项目,里面有一个分享封面图功能,做的过程中遇到了一些问题,特此记录 因为目前在小程序中是没...

  • 小程序开发中的一些问题

    记录一下开发中遇到的小程序问题 问题目录 CanvasContext.fillText自动换行 当某个页面关闭时返...

  • 潍坊小程序开发

    潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍...

  • 潍坊商城小程序开发制作

    潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍...

  • 怎么在小程序编译的时候带参数

    微信小程序开发中 怎么在小程序编译的时候带参数 在网页开发中,url后面带参数很常见,但是小程序开发编译的时候,我...

  • 小程序开发中遇到的一些问题

    最近学习了下小程序开发, 做了一个实时公交查询的小程序,期间遇到的一些问题,记录下来。 1、垂直、水平居中 之前一...

  • 微信小程序的概要

    微信小程序的概要 学习小程序要了解一下什么事小程序,小程序开发前需要做哪些准备,微信小程序开发工具的使用,小程序中...

网友评论

      本文标题:小程序开发中的一些问题

      本文链接:https://www.haomeiwen.com/subject/tbeeoftx.html