微信小程序新手教程中,启动页究竟有多重要?

2026-04-09 00:221阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1853个文字,预计阅读时间需要8分钟。

微信小程序新手教程中,启动页究竟有多重要?

前言+启动页在APP中是一个很常见的需求,为什么对小程序来说也如此重要呢?首先,我想分享一下我在开发过程中遇到的一些问题和解决步骤,最后再解释为什么要添加启动页。

问题一:启动页可以提升用户体验。在用户打开小程序时,如果直接进入主界面,可能会让用户感到突兀。添加启动页可以让用户有一个缓冲的时间,同时展示小程序的logo和slogan,提升品牌形象。

解决步骤:

1.设计启动页界面,包括背景、logo、slogan等元素。

2.使用小程序框架提供的页面生命周期,在页面加载时显示启动页。

3.设置启动页的显示时长,一般为1-2秒。

问题二:启动页可以展示小程序特色功能。在启动页中,可以简要介绍小程序的主要功能,吸引用户关注。

解决步骤:

1.在启动页中加入特色功能的展示图片或文字描述。

2.在用户点击启动页元素后,跳转到对应的功能页面。

问题三:启动页可以引导用户完成首次设置。对于需要用户授权或设置的小程序,启动页可以作为一个引导界面,帮助用户完成相关操作。

解决步骤:

1.在启动页中加入授权或设置引导元素。

2.当用户点击该元素时,自动跳转到授权或设置页面。

为什么要添加启动页:

1.提升用户体验,让用户感受到小程序的专业和用心。

2.展示小程序特色功能,吸引用户关注。

3.引导用户完成首次设置,提高用户留存率。

前言

启动页在APP中是个很常见的需求,为什么对于小程序来说也非常重要呢?首先我描述一下我在开发过程中遇到的一些问题以及解决的步骤,到最后为什么要加启动页,看完你就明白了。

小程序的首页需要展示用户关注的小区信息,意味着一打开小程序我就得先执行登录的逻辑,只有登录了之后才能获取用户关注的小区信息。

在小程序启动的时候自动登录,目前没获取用户信息,所以不需要用户授权,这个逻辑放在根目录下的app.js的onLaunch方法中。只要启动小程序就会执行onLaunch方法。

做完之后发现了一个很严重的问题,就是app.js的onLaunch方法确实会在小程序启动的时候执行,但是首页也会是在app.json文件的pages中第一个页面也会同时执行,它不是阻塞的。会导致一个问题就是首页获取关注信息执行完了,登录的逻辑还没完,获取不到正确的数据。

于是把登录的逻辑放到首页的onLoad方法中执行,在登录成功之后再去获取关注的数据,这样就能解决上面说的问题了。

后面又有一个需求,就是分享功能,分享出去的页面中也需要用到用户信息,这个就尴尬了,分享出去的页面,用户进入的时候还是进入的这个页面,不会执行首页的逻辑,是拿不到用户信息的。

后面想了下,还是增加一个启动页来做中转吧,登录的逻辑还是放到app.js中,只要小程序启动了就可以执行,无论是第一次进入还是通过分享的页面进入,都可以自动登录。

微信小程序新手教程中,启动页究竟有多重要?

问题是如何实现阻塞功能,就是登录之后再去跳转到其它的页面,思路就是通过定时器的方式去检测登录状态,成功了之后再跳转。

分享也是一样,分享出去的地址不再是本页面的地址,而是启动页的地址,带一个参数,这个参数才是本页面的地址,当用户点击分享的小程序进入之后会先进入启动页,启动页中获取参数,等待登录逻辑执行完成之后,再根据参数跳转到分享的页面。

启动页代码:

onLoad: function (e) { var url = '/pages/index/index' // 分享页面参数解码 if (e.page != undefined && e.page != "") { url = decodeURIComponent(e.page) } var count = 0; var inter = setInterval(() => { count++; if (count > 1000) { clearInterval(inter); wx.showToast({ title: "网络异常,请重启小程序", icon: 'none', duration: 2000 }) return; } var token = wx.getStorageSync("login_token"); if (token != null && token != "") { clearInterval(inter); // 跳转到toolbar if (url == "/pages/index/index" || url == "/pages/city/cityAll/cityAll") { wx.switchTab({ url: url }) } else { // 跳转到普通页面 wx.navigateTo({ url: url, }) } } },10); }

当检查超过10秒钟,登录信息还获取不到的时候就会给出提示,后续会加上一个让用户手动授权登录的页面。

这种方式勉强能实现需求,但不是最好的方式,问题一看就知道了,如果加了启动页,意味着所有的入口都变成了启动页,就没有必要通过定时去检测了,直接将登录的逻辑放到启动页中来执行,在success中在做跳转的逻辑,这样的方式才是最好的,具体代码我就不贴出来,大家明白就好。

具体的分享页面代码:

onShareAppMessage: function () { let that = this var page = encodeURIComponent('/pages/district/districtDetail/districtDetail?city=' + that.data.city + '&region=' + that.data.region + '&districtName=' + that.data.districtName + '&estateType=' + that.data.estateType + "&isshare=1") return { title: '小区详情', path: '/pages/startPage/startPage?page='+page } }

重点关注isshare=1这个参数,当直接打开分享的页面时,用户点击左上角的返回按钮,基于现有的逻辑会退回到启动页,因为是从启动页中转过来的,这是有问题的,要么就去掉这个返回按钮,要么就返回到首页。

所以对于分享的页面带了一个参数识别,当是从分享页面进来的时候返回就到首页面。具体逻辑在页面的onUnload函数中,在页面卸载的时候进行跳转:

if (this.data.isshare == 1) { wx.switchTab({ url: '/pages/index/index' }) }

以上就是启动页的作用以及需要启动页的一些背景,第一次开发小程序,总会碰到很多问题。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对自由互联的支持。

标签:前言

本文共计1853个文字,预计阅读时间需要8分钟。

微信小程序新手教程中,启动页究竟有多重要?

前言+启动页在APP中是一个很常见的需求,为什么对小程序来说也如此重要呢?首先,我想分享一下我在开发过程中遇到的一些问题和解决步骤,最后再解释为什么要添加启动页。

问题一:启动页可以提升用户体验。在用户打开小程序时,如果直接进入主界面,可能会让用户感到突兀。添加启动页可以让用户有一个缓冲的时间,同时展示小程序的logo和slogan,提升品牌形象。

解决步骤:

1.设计启动页界面,包括背景、logo、slogan等元素。

2.使用小程序框架提供的页面生命周期,在页面加载时显示启动页。

3.设置启动页的显示时长,一般为1-2秒。

问题二:启动页可以展示小程序特色功能。在启动页中,可以简要介绍小程序的主要功能,吸引用户关注。

解决步骤:

1.在启动页中加入特色功能的展示图片或文字描述。

2.在用户点击启动页元素后,跳转到对应的功能页面。

问题三:启动页可以引导用户完成首次设置。对于需要用户授权或设置的小程序,启动页可以作为一个引导界面,帮助用户完成相关操作。

解决步骤:

1.在启动页中加入授权或设置引导元素。

2.当用户点击该元素时,自动跳转到授权或设置页面。

为什么要添加启动页:

1.提升用户体验,让用户感受到小程序的专业和用心。

2.展示小程序特色功能,吸引用户关注。

3.引导用户完成首次设置,提高用户留存率。

前言

启动页在APP中是个很常见的需求,为什么对于小程序来说也非常重要呢?首先我描述一下我在开发过程中遇到的一些问题以及解决的步骤,到最后为什么要加启动页,看完你就明白了。

小程序的首页需要展示用户关注的小区信息,意味着一打开小程序我就得先执行登录的逻辑,只有登录了之后才能获取用户关注的小区信息。

在小程序启动的时候自动登录,目前没获取用户信息,所以不需要用户授权,这个逻辑放在根目录下的app.js的onLaunch方法中。只要启动小程序就会执行onLaunch方法。

做完之后发现了一个很严重的问题,就是app.js的onLaunch方法确实会在小程序启动的时候执行,但是首页也会是在app.json文件的pages中第一个页面也会同时执行,它不是阻塞的。会导致一个问题就是首页获取关注信息执行完了,登录的逻辑还没完,获取不到正确的数据。

于是把登录的逻辑放到首页的onLoad方法中执行,在登录成功之后再去获取关注的数据,这样就能解决上面说的问题了。

后面又有一个需求,就是分享功能,分享出去的页面中也需要用到用户信息,这个就尴尬了,分享出去的页面,用户进入的时候还是进入的这个页面,不会执行首页的逻辑,是拿不到用户信息的。

后面想了下,还是增加一个启动页来做中转吧,登录的逻辑还是放到app.js中,只要小程序启动了就可以执行,无论是第一次进入还是通过分享的页面进入,都可以自动登录。

微信小程序新手教程中,启动页究竟有多重要?

问题是如何实现阻塞功能,就是登录之后再去跳转到其它的页面,思路就是通过定时器的方式去检测登录状态,成功了之后再跳转。

分享也是一样,分享出去的地址不再是本页面的地址,而是启动页的地址,带一个参数,这个参数才是本页面的地址,当用户点击分享的小程序进入之后会先进入启动页,启动页中获取参数,等待登录逻辑执行完成之后,再根据参数跳转到分享的页面。

启动页代码:

onLoad: function (e) { var url = '/pages/index/index' // 分享页面参数解码 if (e.page != undefined && e.page != "") { url = decodeURIComponent(e.page) } var count = 0; var inter = setInterval(() => { count++; if (count > 1000) { clearInterval(inter); wx.showToast({ title: "网络异常,请重启小程序", icon: 'none', duration: 2000 }) return; } var token = wx.getStorageSync("login_token"); if (token != null && token != "") { clearInterval(inter); // 跳转到toolbar if (url == "/pages/index/index" || url == "/pages/city/cityAll/cityAll") { wx.switchTab({ url: url }) } else { // 跳转到普通页面 wx.navigateTo({ url: url, }) } } },10); }

当检查超过10秒钟,登录信息还获取不到的时候就会给出提示,后续会加上一个让用户手动授权登录的页面。

这种方式勉强能实现需求,但不是最好的方式,问题一看就知道了,如果加了启动页,意味着所有的入口都变成了启动页,就没有必要通过定时去检测了,直接将登录的逻辑放到启动页中来执行,在success中在做跳转的逻辑,这样的方式才是最好的,具体代码我就不贴出来,大家明白就好。

具体的分享页面代码:

onShareAppMessage: function () { let that = this var page = encodeURIComponent('/pages/district/districtDetail/districtDetail?city=' + that.data.city + '&region=' + that.data.region + '&districtName=' + that.data.districtName + '&estateType=' + that.data.estateType + "&isshare=1") return { title: '小区详情', path: '/pages/startPage/startPage?page='+page } }

重点关注isshare=1这个参数,当直接打开分享的页面时,用户点击左上角的返回按钮,基于现有的逻辑会退回到启动页,因为是从启动页中转过来的,这是有问题的,要么就去掉这个返回按钮,要么就返回到首页。

所以对于分享的页面带了一个参数识别,当是从分享页面进来的时候返回就到首页面。具体逻辑在页面的onUnload函数中,在页面卸载的时候进行跳转:

if (this.data.isshare == 1) { wx.switchTab({ url: '/pages/index/index' }) }

以上就是启动页的作用以及需要启动页的一些背景,第一次开发小程序,总会碰到很多问题。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对自由互联的支持。

标签:前言