您当前位置:

首页 营销资讯

微信小程序中存在的一些坑

微信小程序中存在的一些坑

2021-03-31 • 阅读

第一:微信小程序中用户登录和登陆状态维护。

为啥说这个是个大坑呢?我们知道,让用户登录,标识用户和获取用户信息,以用户为核心提供服务,是大部分程序都会做的事情,而用户登陆一般会有三类方式第一种,使用自有账号注册和登陆,比如进入小程序,我们让用户填写手机号注册登陆。第二中使用第三方平台登陆,第三种,使用微信账号登陆。这三种登陆微信小程序本身都支持,但是问题来了。

小程序中没有Cookie的机制,大家知道,对于原生app或者网页app来说,大部分公司验证用户信息都是通过,进入app时候调用登陆接口,然后把用户信息保存在cookie里面,然后在请求其他接口的时候,通过cookie验证是否登陆,然而,微信小程序不支持。也就是说,原生app和网页app里面接口,不能用后台需要按照小程序的规则从新验证登陆信息,是不是很坑。

第二:微信小程序不支持html页面。

微信小程序的。wxml虽然类似html但是它并不是html,微信小程序之间的跳转仅仅限于在app。json里面注册的页面,它是不能跳转的外部页面的,比如,你有一个banner图,点击跳转到外部的一个html页面,这个是不支持的,但是,这个需求又很常用,所以,如果大家想用小程序做项目的时候,最好先考虑一下,这种需求多不多。

第三:微信不支持DOM和BOM

上面说了,微信内没有window对象。window对象就是bom(浏览器对象模型)的顶层对象。同样它也没有dom(文档对象模型),对于一些,我们常用的第三库,比如,jquery,zepto等等都是无法使用的,这样,比如我们需要在小程序内根据用户信息生成一个二维码,等等这种需求我们也是无法做的。微信小程序有生成二维码的接口,但是仅仅适用于,生成微信小程序本身的二维码。

第四:微信小程序页面限制

微信小程序规定打开页面的个数不得超过5个。微信提供 Tab 栏的设置,可以在app.json中配置(最少两个,最多5个)。在 App 里配置的 Tab 栏将出现在所有的一级页面。但是它有一个问题就是第一次点击 Tab 将会打开一个新的页面。

微信提供了几个页面跳转的方式,redirectto、navigateto,还有返回。redirectto会直接在原页面上打开新页面,navigateto会新开启一个页面。由于微信在页面数量上有限制,我们产品的层级有比较多,导致无法直接在app.json设置 Tab 栏。所以我们把 Tab 栏单独设计出来。点击 Tab 不开启新页面。在每个初级页面都引用进去,之后二级三级的页面上不使用 Tab 切换,而是需要返回到初级页面。

第五:页面的逆转传值

举个例子,我们如果从A页面传值到B页面,可以直接navigateTo()中url携带参数的方式,但是如果我们返回从B传到A就不能了,现实应用,比如我们手机通讯录,点击名字进入详情页面,在详情页面修改了电话号码。返回的时候,怎么传给上个页面,让上级页面显示的电话号码和修改后的一样。ios,可以使用代理传值,或者bloack,vue可以使用$emit和v-on结合这些都可以做到,但是小程序没有这些。这个有两种方式处理,第一种是,使用全局数据存储,把值存在App对象上,或者使用小程序的数据缓存,第二种是从页面路由栈中直接获取和操作目标Page对象(这个我没有试过,这个是我在网上看到别人这么做的,我没有试),这种方式,是通过调用小程序的API: getCurrentPages(),来获取当前页面路由栈的信息,这个路由栈中按照页面的路由顺序存放着相应的Page对象,我们可以很容易的获取到上一级页面的完整Page对象,从而使直接调用Page对象的属性和方法成为可能。

以上就是本站关于 [微信小程序中存在的一些坑] 的详细介绍。

如果您还有什么疑问或需求,请【立即咨询】客服或添加 VX:19180581726 由我们的专业顾问免费为您解答。

此文章来源于网络,如有侵权,请联系删除

全国统一客服热线(7X24)

19180581726

邮 箱:2880605093@QQ.com

网 址:www.zq-mall.com

Q Q:2880605093

Copyright © 2021-2022鱼爪多媒网 版权所有 蜀ICP备16020933号-1

客服邮箱:2880605093@QQ.com 或致电:19180581726