您当前的位置: 首页 > 知识百科 > 微信加载小程序超时怎么办?

微信加载小程序超时怎么办?

时间:2023-07-01 14:05 阅读数:104 人阅读 分类:知识百科

  大家都知道开发小程序的时候容易出现问题,其实使用小程序的时候也容易出现问题,尤其是微信加载小程序超时,那么遇到这种情况要怎么应对呢?

  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"

  })

  }

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

  搜索

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

  Do not have * handler in current page.

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

  bindtap:function(event){

  wx.navigateTo({

  url: "search/search"

  })

  },

  tabBar设置不显示

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

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

  "pages":[

  "pages/message/message",

  "pages/contact/contact",

  "pages/dynamic/dynamic",

  "pages/dynamic/music/music",

  "pages/index/index",

  "pages/logs/logs"

  ]

  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中

  {{item.title}}

  {{item.message}}

  {{item.time}}

  {{item.count}}

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

  /** 作者:dushao

  * 新浪微博:weibo/dushaoxiaoxiao

  * 博客 : .takozhang

  * */

  *

  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(){

  // 页面关闭

  },

  bindtap:function(event){

  wx.navigateTo({

  url: "/pages/message/search/search"

  })

  },

  })

  上文中介绍了很多在使用小程序的时候容易出现的问题,包括微信加载小程序超时的问题,希望微信小程序商店提供的这份资料能够帮助到大家。

  

  小程序小程序点击加载样式怎么弄

  微信小程序上拉加载更多的实现方法

  小程序上拉加载更多怎么实现?