- 关于数据预拉取的功能设计和实现疑问?
加粗的地方是本人重点🈶️疑问或者不确定的,求详细解答! 我的需求:需要在小程序一打开获取目标数据,并根据数据向用户展示信息。且我需要小程序新用户第一次打开小程序就能拿到这个数据。我需要在onLaunch时立刻调用一个接口获取数据,在获取这个数据的时机,我还没有通过 wx.login 实现登录等逻辑,拿不到 openId 等数据。 我想通过数据预拉取实现需求。在阅读文档和社区时产生如下疑问: 1.关于token设计 文档:第一次启动小程序时,调用 wx.setBackgroundFetchToken() 设置一个 TOKEN 字符串,可以跟用户态相关,会在后续微信客户端向开发者服务器请求时带上,便于给后者校验请求合法性。 1.1. 这个和用户态关联的 token 怎么设计?我理解接口调用是在微信后台(代码包下载期间)发生的,如果我设计 token=localStorage中的session缓存字段,微信发起请求时能拿到用户本地的缓存的 session 数据吗? 如果不能,我在这个时机又没有任何用户态相关的信息,怎么传啊,我不想用 code 模式(可能导致用户重复登录)。 1.2. 如何保证接口安全?后端只能将接口设计为 get接口,且只能通过 token 字段来鉴权?比如我们接口之前还有特殊的 header实现鉴权,这些都不能实现?那这个接口也太不安全(太局限)了吧? 且基于 1.1. 我也不知道到底该咋定义这个 token 更安全。 2.关于数据获取 2.1. wx.getBackgroundFetchData我这样理解对吗?wx.getBackgroundFetchData,在冷启动下载代码包期间,微信后台会调用接口。当执行到 onLaunch 时,如接口请求完成则getBackgroundFetchData返回新数据,如接口未调用完成则返回缓存数据/空数据? 2.2. wx.onBackgroundFetchData 我这样理解对吗?用于监听backgroundFetch接口调用,如果在代码执行到 onLaunch 的wx.onBackgroundFetchData事件之前已经完成请求,则监听事件不会触发,否则当请求完成会触发监听时间获取到最新的代码。 2.3. 当我数据预拉取代码上线后,用户第一次打开,只会先setBackgroundFetchToken设置这个 token,onBackgroundFetchData和getBackgroundFetchData 都不会返回数据,用户第二次冷启动才会拿到数据对吗? 综上,如果我不需要获取最新数据,仅需调用getBackgroundFetchData即可。如果我想获取最新的数据,需要同时使用这两个方法(用户第一次访问没数据),但这可能会导致重复调用数据处理方法,我这样写对吗?能不能帮我优化下面的逻辑? App({ let targetData = {} let dataTimeStamp = 0 onLaunch() { wx.onBackgroundFetchData((res) => { targetData = res.fetchedData // 判断是不是新数据 if(res.timeStamp>dataTimeStamp){ dataTimeStamp = res.timeStamp // 处理数据(新) } }) wx.getBackgroundFetchData({ fetchType: 'pre', //数据预拉取 success(res) { targetData = res.fetchedData // 判断是不是新数据 if(res.timeStamp>dataTimeStamp){ dataTimeStamp = res.timeStamp // 处理数据(新 or 旧) } } }) } })
2024-12-18 - 数据预拉取,如何合理设置 token?
文档描述:第一次启动小程序时,调用 wx.setBackgroundFetchToken() 设置一个 TOKEN 字符串,可以跟用户态相关,会在后续微信客户端向开发者服务器请求时带上,便于给后者校验请求合法性。 我的需求是要在 onLauch 里使用数据预拉取,如果用 code 的话,我理解后台会重新生成 session。而我们前端之前做过 seesion 缓存,如果 onLaunch 的时候 session 更新了,可能会导致每次冷启动都要seesion 过期再自动登录一下,对用户不友好。如果传 token 的话,怎么设计这个 token 比较合理呢,咋跟用户态关联起来呀。求思路。 注,我在 onLaunch 时还没有调用登录逻辑。
2024-12-17 - 从 A 小程序跳转到 B 小程序,需要进行什么配置吗?
我看文档里并没有说明 小程序B 是否要进行加白或者其他操作。 请问小程序A想跳转另一个小程序B只需要调用跳转方法就可以了吗? B 不需要进行任何处理?
2024-12-06 - 小程序如何禁用右上角的收藏按钮?
如题,想禁用收藏按钮。目前是否没有相关的支持?文档中只找到onAddToFavorites方法,只能更改query参数,不能更改收藏的url。
2024-11-08 - 基础库错误?SyntaxError: Unexpected token '='. Expected
line:4,column:0,SyntaxError: Unexpected token '='. Expected an opening '(' before a method's parameter list. Stack: 仅今天出现上w次告警,求解!没有更多信息了,我看论坛里也有关于这行报错的提问,请问是基础库内部的错误吗? line:4,column:0,SyntaxError: Unexpected token \'=\'. Expected an opening \'(\' before a method\'s parameter list. Stack: 错误次数:21833次 错误次数占比:31.7% 错误人数:20163人 错误人数占比:44.0%
2024-05-31 - 求助!在微信服务通知中一直下发消息是如何实现的,12306APP的消息推送是如何实现的?
如图,我司想在APP和小程序实现一模一样的能力,对此我有两个问题。 1.APP拉端到微信的这个【确认接收】页面如何实现。 2. 这种小程序的“向我发送服务通知”是什么能力,不是一次性消息订阅,应该也不是长期订阅吧。 我看瑞幸 美团都可以一直推送消息,查了文档的能力感觉都不像,也没有找到更多示例,求教是如何实现的!求解求解求解! [图片][图片][图片][图片][图片]
2024-05-28 - 开发者工具一打开就白屏闪退,几乎不可使用怎么办?
ide:1.06.2402040 电脑:win11 每次打开必白屏,或者刚打开是好的,但是页面点击无效,接着就是白屏无响应。出现这种问题后,需要频繁重启ide和电脑,才能好。然后下一次打开继续白屏。尝试降级到1.05版本仍有这个问题。 [图片][图片][图片]
2024-03-26 - 微信文档是用什么框架实现的?有没有开源框架推荐?
[图片] 求助各位大佬,我也想开发类似这样效果的文档中心,支持微信文档这种全文搜索的,页面样式支持个性化的,有没有框架推荐哇。
2022-06-27 - 分享朋友圈,有人能看到有人看不到,且分享时间异常?
开发版小程序分享朋友圈。 问题一:分享朋友圈后,设置朋友圈两人可见,结果一个人能看到,一个人看不到。 问题二:分享朋友圈后,打开朋友圈,显示分享时间为8天前。 [图片] 代码只设置了wx.showShareMenu wx.showShareMenu({ withShareTicket: true, menus: ["shareAppMessage", "shareTimeline"] })
2022-01-05 - web-view页面正常打开,但是触发binderror?
用web-view打开h5页面,页面功能都是正常的,但是出发了binderror?为什么? [图片]
2021-12-29