艺术修行微信小程序开发计算机杂谈

【小程序入门集锦】10,微信小程序开发初学常见基础问题

2017-04-10  本文已影响216人  石桥码农

这是小K的文章,附原链接:链接

小程序开发服务器地址域名要求是https,可以在七牛上免费申请使用一年:

七牛免费申请 SSL 证书地址:https://portal.qiniu.com/ssl/create

摘录主要内容如下:

一、项目结构

微信小程序项目结构主要有四个文件类型,如下

WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要是微信自己定义的一套组件。

WXSS(WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式,

js逻辑处理,网络请求

json小程序设置,如页面注册,页面标题及tabBar。

注意:为了方便开发者减少配置项,规定描述页面的这四个文件必须具有相同的路径与文件名。

在根目录下用app来命名的这四中类型的文件,就是程序入口文件。

app.json

必须要有这个文件,如果没有这个文件,项目无法运行,因为微信框架把这个作为配置文件入口,整个小程序的全局配置。包括页面注册,网络设置,以及小程序的window背景色,配置导航条样式,配置默认标题。

app.js

必须要有这个文件,没有也是会报错!但是这个文件创建一下就行 什么都不需要写

以后我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。

app.wxss

全局配置的样式文件,项目非必须。

知道小程序基本文件结构,就可以开始研究官方demo了,研究过程中如果有不明白的地方可以去官方文档寻求答案,如果找不到答案或者有疑问,可再此博客留言,相互交流。下面介绍下出现概率较高的几个问题。

二、常见问题

rpx(responsive pixel)

微信小程序新定义了一个尺寸单位,可以适配不同分辨率的屏幕,它规定屏幕宽为750rpx,如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。

40013错误

在微信小程序刚出来的时候如果输入AppID提示这个信息就表示没有破解,但是现在官方软件更新可以选择无AppID开发,如下图,我们之间选择无AppID,即可解决此错误。建议安装官方开发工具。可去此处找下载链接。

4058错误

微信小程序创建项目时选择无AppID,创建项目时会生成app.json,app.josn是程序启动最重要的文件,程序的页面注册,窗口设置,tab设置及网络请求时间设置都是在此文件下的。如果你创建的项目目录下没有app.json文件就会报下面的错误。

Page注册错误

这个错误可能很容易理解,页面注册错误。页面是通过Page对象来渲染的,每个页面对应的js文件必须要创建page,最简单的方式就是在js文件下写入Page({}),在page中有管理页面渲染的生命周期,以及数据处理,事件都在这完成。这个错误引起的原因一般都是刚创建页面,js文件还有有处理或者忘了处理。所以要养成创建页面的同时在js文件先创建Page的习惯.

Page route错误

字面意思就是页面路由错误,在微信中有两种路由方式一种是在wxml文件使用组件,一种是调 wx.navigateTo。

js文件事件处理函数:

bindtap:function(event){

wx.navigateTo({

url: “search/search”

})

}

如果你这样写的话,恭喜你,你就会看到上面提示的错误,这是因为重复调用路由引起的,处理方法就是删除一个路由,删除组件或者删除wx.navigateTo。除了上面说的可能导致路由错误外,还有一种情况,类似于下面的代码

这种也是不允许的,也就是说组件内部不能再嵌套组件。它只能是单层存在的。

不是所有的组件都不允许嵌套,view就充许嵌套。也要看嵌套什么,组件中嵌套text、view是可以的。该处错误是违背了视图规则,与导航无关。

Do not have * handler in current page.

大概意思就是当前页面没有此处理,让确定是否已经定义,还指出了错误出现的可能位置pages/message/message,其实这种问题出现一般就是我们在wxml定义了一些处理事件,但是在js文件中没有实现这个时事件的处理方法,就会出现这个错误。那么我们按提示在js文件加上事件处理,如下代码,加上后就不会再有此错误提示。

tabBar设置不显示

对于tabBar不显示,原因有很多,查找这个错误直接去app.json这个文件,最常见的也是刚学习微信小程序最容易犯的错误无外乎下面几种

注册页面即将页面写到app.json的pages字段中,如

tabBar写法错误导致的不显示,将其中的大写字母B写成小写,导致tabBar不显示。

tabBar的list中没有写pagePath字段,或者pagePath中的页面没有注册

tabBar的list的pagePath指定的页面没有写在注册页面第一个。微信小程序的逻辑是”pages”中的第一个页面是首页,也就是程序启动后第一个显示的页面,如果tabBar的list的pagePath指定的页面都不是pages的第一个,当然也就不会电视tabBar了。

tabBar的数量低于两项或者高于五项,微信官方中明确规定tabBar的至少两项最多五项。超过或者少于都不会显示tabBar。

navigationBarTitle显示问题

通过这个动态图你应该发现问题了,当点击音乐进入音乐界面时,title先显示了WeChatForQQ然后显示的音乐,这个体验肯定是难以接受的,原因是音乐界面的title是在js文件中page的生命周期方法中设置的。

wx.navigateTo无法打开页面

一个应用同时只能打开5个页面,当已经打开了5个页面之后,wx.navigateTo不能正常打开新页面。请避免多层级的交互方式,或者使用wx.redirectTo

页面间数据传递

微信小程序路由(页面跳转)是通过API wx.navigateTo或者wxml中组件实现的,不管哪种实现都会有一个重要的参数就是url,它指定了要跳转的页面,并且页面之间数据传递也是通过url来实现的,这个数据传递有点类似于我们使用的get网络请求,把参数都拼接在要跳转界面地址的后面并以“?”连接。然后将要传入的数据以键和值的形式追加在”?”后面,多个参数直接用”&”符合。

---

最后分享一个艺集的小程序UI,做的很赞:

附源码:https://github.com/SuperKieran/weapp-artand

源码中有js接口,是艺集网站的。

---

我在知乎开了一个live,4月22日晚(周六)8点半我在知乎与大家见面:

【0基础周末学习小程序开发】

https://www.zhihu.com/lives/832919740296101888

在【哲学李论】公众号回复"0基础周末学习小程序开发",可以免费领券,限量500名。

在微信公众号哲学李论,回复“小程序入门集锦”可以看到这个系列的所有文章。

知乎同名专栏:https://zhuanlan.zhihu.com/zero-weapp

本文同时在多个平台、社群转发,在公众号回复“社群”可与其它艺友热情连接。

如果觉得本文还行,请转发到朋友圈让更多朋友看到。

如果您看到有料的文章,荐文热线:liyi@rixingyike.com。

上一篇下一篇

猜你喜欢

热点阅读