小程序学习笔记

作者: AlessiaLi | 来源:发表于2017-07-10 17:47 被阅读308次

    相关资源

    常用代码

    1. 关于引入

    样式导入
    引入 css:

    @import "../templates/list-item/list-item.wxss";
    

    WXML 提供两种文件引用方式 import 和 include
    引入 wxml template:

    <import src="../templates/share/share.wxml" />
    

    拷贝 wxml:

    <include src="../templates/share/share.wxml" />
    

    2. 方法如何传参数

    没法直接传参数,都要通过 dataset 获取,代码示例如下:
    wxml:

    <view class="delete" data-id="{{id}}" catchtap="deleteItem">删除</view>
    

    js:

    deleteItem: function(e){
        var id = e.currentTarget.dataset.id;
        ......
    }
    

    3. 修改数组对象的某个元素的属性

    var param = {};
    var string = "list[" + index + "].text";
    param[string] = 'changed data';
    this.setData(param);
    

    微信小程序 setData 的坑
    setData的灵活应用

    (愚蠢的)错误

    1. 微信的某个固定方法未生效

    问题:
    在某个页面的 js 中定义 onShareAppMessage 函数,设置该页面的转发信息,但是设置的属性却没有生效。
    原因:
    初始化页面时微信开发者工具会自己将部分生命周期及其他方法(包括 onShareAppMessage 函数)定义在页面里,我自己在代码前面又重新定义了 onShareAppMessage 函数,导致该函数被后面的空函数覆盖,因此设置的属性方法等未生效。
    解决:
    删除空函数。
    引以为戒,不要犯类似的愚蠢错误。

    2. navigateTo 跳转失败

    问题:
    报错:navigateTo:fail url "" is not in app.json
    解决:
    检查下页面是否已经在 app.jsonpages 属性下注册了。
    或者该页面的 js 文件是否已经定义了 page 方法:Page({})
    或者 json 文件中是否为空(不能为空,至少要有 {})。

    问题:
    点击按钮触发 wx.navigateTo 方法,但没有任何反应。
    解决:
    wx.navigateTo 方法不能跳转到存在 tabBar 的页面,即那些已经在 app.jsontabBar 字段下定义的页面。
    要想跳转到 tabBar 页面,可以使用 wx.switchTab

    真机测试

    1. 模仿微信消息的左滑删除功能效果不佳

    问题:
    小程序:模仿微信左滑动,出现标为未读和删除按钮,好不容易实现的功能,在真机上测试时却发现动画效果很差,滑块同滑块中的文字会以不同的速率移动,很奇怪。
    解决:
    只能改成点击出现操作菜单的方式了,提供一个按钮,点击就使用 wx.showActionSheet 显示操作菜单。

    2. tabBar 图标 81px*81px 显大

    问题:
    配置 tabBar 的 iconPath 时,官方说明为:图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px,当 postion 为 top 时,此参数无效。
    我理所当然让 UI 制作了该尺寸的 icon,在开发者工具上查看时效果还行,但在真机上调试时却发现图标过大,不好看。
    解决:
    最后 UI 将实际 icon 大小调为 62px62px,加上空白区域仍旧导出 81px81px 的图片给我。

    3. 显示用户默认头像

    问题:
    一般小程序都会获取用户的基本信息如昵称和头像,但同时也要考虑到用户拒绝授权的情况(wx.getUserInfo 接口需要用户授权,请兼容用户拒绝授权的场景),如果拒绝,原本应该显示头像区域的地方可以显示一个默认的头像,但真机测试时我使用的测试账号连头像都没设置,因此即使同意授权了头像区域还是一片空白。
    解决:
    做好判断,即使授权成功获取到的用户头像信息仍旧可能为空。

    奇怪的坑

    1. margin-bottom 在 ios 下无法撑起页面

    问题:
    某个页面底部有一个 fixed 元素,会遮住页面一部分,而我希望能够完整看到当前页面的内容,因此就对当前页面的内容包裹元素加了个 margin-bottom: 140rpx; 以此撑起一定高度,希望可以通过滚动看到完整的页面内容。
    但是在 ios 下该 margin-bottom 未起作用,页面无法向下拉到底,而在安卓下效果正常。
    解决:
    新增一个隐藏的(background-color:transparent;)元素,设置高为 140rpx;

    相关文章

      网友评论

        本文标题:小程序学习笔记

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