全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

微信小程序 常见问题总结(4058,40013)及解决办法

微信小程序 常见问题:

一:项目结构

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

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物理像素。

这个项目我用的都是rpx尺寸单位,期间遇到一个很奇葩的问题。在相邻的两条信息直接都会有一个分割线,我将线的高度都设置成1rpx,但是不有个别分割线是不显示的

看到没在第一条和第二条直接并没有现实这条线,但是其他的都展示了,分割线的属性是一样的,而且在不同的手机上(分辨率不同)不显示的分割线也是不同的,有的分辨率好几条分割线都不显示,不知道这是模拟器的bug还是rpx的bug。最后分割线的高度尺寸单位使用了px,解决了这个问题。

40013错误

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

4058错误

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

我们看到上面的错误信息中有个数字-4058,这应该是初入微信小程序遇到最多的错误了,这种一般都是文件缺失,后面有个path,可以对着该路径看看是否存在这个文件。造成这种错误的原因一般都是创建项目选择的目录不正确,或者在app.json注册了一个不存在的页面。

当然还有一种情况就是在app.json文件的pages注册的页面是没有创建的,或者你删除了某个页面,但是没有取消注册也会是-4058错误。

Page注册错误

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

Page route错误

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

如下代码:

wxml文件:

js文件事件处理函数:

bindtap:function(event){
wx.navigateTo({
url: "search/search"
})
}

如果你这样写的话,恭喜你,你就会看到上面提示的错误,这是因为重复调用路由引起的,处理方法就是删除一个路由,删除

<navigator url="search/search">
<navigator url="search/search">
<view class="serach_view_show" bindtap="bindtap"> 搜索</view>
</navigator>
</navigator>

这种也是不允许的,也就是说

Do not have * handler in current page.

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

 bind:function(event){
  wx.navigateTo({
   url: "
pages/logs/logs
"
  })
 },

tabBar设置不显示

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

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

"pages":[
  "pages/index/index",
  "pages/logs/logs",
  "pages/account/account",
  "pages/more/more"
 ],

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的生命周期方法中设置的。
若你不了解生命周期,可以点击查看

Page({
data:{
// text:"这是一个页面"
},
onLoad:function(options){
// 页面初始化 options为页面跳转所带来的参数

 },
 onReady:function(){
  // 页面渲染完成
  //NavigationBarTitle如果此处和json文件都设置,最后展示此处的标题栏
wx.setNavigationBarTitle({
 title: '账户'
})
 },
 onShow:function(){
  // 页面显示
 },
 onHide:function(){
  // 页面隐藏
 },
 onUnload:function(){
  // 页面关闭
 }
})

通过注释你应该明白了,设置标题写在了onReady方法中,也就是页面已经渲染完成了,在onReady之前显示的title就是json文件(覆盖关系,如果在子页面json文件设置title会覆盖app.json全局设置)中的title。可能你会说将wx.setNavigationBarTitle写在onLoad函数中,不过如果这样设置是不对的,因为onLoad执行过后才渲染页面,在渲染页面时title会从json文件中读取,导致onLoad设置的title会只在页面渲染之前展示,之后就显示json文件的tile,所以现在你应该明白ttle设置最优的地方就是给子文件写一个json文件,在文件中写入,如果想改变颜色直接在文件中添加就可以,该文件所写的属性值会覆盖app.json中设置的值。

{
"navigationBarTitleText": "账户"
}

wx.navigateTo无法打开页面

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

本地资源无法通过 css 获取

background-image:可以使用网络图片,或者 base64,或者使用标签

页面间数据传递

微信小程序路由(页面跳转)是通过API wx.navigateTo或者wxml中

 <navigator url="/pages/dynamic/dynamic?title={{item.title}}&message={{item.message}}">
     <view class="item" >
       <view class="item-left">
         <image src="{{item.url}}" class="image"/>
       </view>
       <view class="item-middle">
         <view>
            <text class="title">{{item.title}}</text>
         </view>
         <view>
           <text class="message">{{item.message}}</text>
         </view>
      </view>
      <view class="item_right">
        <view><text class="time">{{item.time}}</text></view>
        <view class="mark" wx:if="{{item.count>0}}"><text class="text">{{item.count}}</text></view>
      </view>
     </view>
     <view class="line"></view>
    </navigator>

而数据接收是在js文件的page里接收的,page生命周期有一个onLoad函数,它就是做一些初始化数据的工作,onLoad函数有一个参数options,我们就可以通过key将数据获取,如下

Page({
 data:{
  // text:"这是一个页面"
  isHiddenToast:true
 }
 onLoad:function(options){
  // 页面初始化 options为页面跳转所带来的参数
  console.log(options.title)
   console.log(options.message)

 },
 onReady:function(){
  // 页面渲染完成
 },
 onShow:function(){
  // 页面显示
 },
 onHide:function(){
  // 页面隐藏
 },
 onUnload:function(){
  // 页面关闭
 },
 bind:function(event){
wx.navigateTo({
 url: "
pages/logs/logs
"
})
 },
})


感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 微信小程序  # 常见问题  # 40013  # 4015问题  # 微信小程序page注册错误问题  # 结构  # 微信小程序点餐系统开发常见问题汇总  # 微信小程序开发常见问题及解决方案  # 微信小程序 HTTPS报错整理常见问题及解决方案  # 微信小程序遇到修改数据后页面不渲染的问题解决  # 微信小程序获取音频时长与实时获取播放进度问题  # 微信小程序搭建及解决登录失败问题  # 微信小程序多音频播放进度条问题  # 微信小程序—setTimeOut定时器的问题及解决  # 微信小程序中遇到的iOS兼容性问题小结  # 微信小程序学习总结(五)常见问题实例小结  # 都是  # 第一个  # 分割线  # 是在  # 你应该  # 跳转  # 写在  # 都不  # 就可以  # 最多  # 有一个  # 要有  # 中有  # 这是一个  # 会报  # 两项  # 五项  # 这是  # 就会  # 如果你 


相关文章: 临沂网站制作企业,临沂第三中学官方网站?  高防服务器租用指南:配置选择与快速部署攻略  建站之星收费标准详解:套餐费用及年费价格表一览  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  深圳网站制作案例,网页的相关名词有哪些?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  如何在腾讯云服务器上快速搭建个人网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何快速搭建自助建站会员专属系统?  建站主机如何选?高性价比方案全解析  如何获取开源自助建站系统免费下载链接?  历史网站制作软件,华为如何找回被删除的网站?  太平洋网站制作公司,网络用语太平洋是什么意思?  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  宿州网站制作公司兴策,安徽省低保查询网站?  Swift中switch语句区间和元组模式匹配  一键网站制作软件,义乌购一件代发流程?  建站之星后台密码遗忘如何找回?  网站制作壁纸教程视频,电脑壁纸网站?  h5在线制作网站电脑版下载,h5网页制作软件?  如何快速打造个性化非模板自助建站?  北京网站制作公司哪家好一点,北京租房网站有哪些?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  如何打造高效商业网站?建站目的决定转化率  孙琪峥织梦建站教程如何优化数据库安全?  建站DNS解析失败?如何正确配置域名服务器?  购物网站制作公司有哪些,哪个购物网站比较好?  ,在苏州找工作,上哪个网站比较好?  如何解决VPS建站LNMP环境配置常见问题?  网站制作公司,橙子建站是合法的吗?  如何挑选优质建站一级代理提升网站排名?  视频网站制作教程,怎么样制作优酷网的小视频?  济南企业网站制作公司,济南社保单位网上缴费步骤?  Android滚轮选择时间控件使用详解  建站主机服务器选型指南与性能优化方案解析  太原网站制作公司有哪些,网约车营运证查询官网?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  h5网站制作工具有哪些,h5页面制作工具有哪些?  内部网站制作流程,如何建立公司内部网站?  音响网站制作视频教程,隆霸音响官方网站?  如何通过PHP快速构建高效问答网站功能?  如何在新浪SAE免费搭建个人博客?  如何制作网站标识牌,动态网站如何制作(教程)?  建站之星图片链接生成指南:自助建站与智能设计教程  如何确保FTP站点访问权限与数据传输安全?  如何快速搭建FTP站点实现文件共享?  如何选择网络建站服务器?高效建站必看指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。