惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
D
Docker
IT之家
IT之家
博客园_首页
罗磊的独立博客
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
美团技术团队
Y
Y Combinator Blog
博客园 - 聂微东
量子位
阮一峰的网络日志
阮一峰的网络日志
GbyAI
GbyAI
Microsoft Security Blog
Microsoft Security Blog
博客园 - Franky
Martin Fowler
Martin Fowler
Jina AI
Jina AI
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
月光博客
月光博客
G
Google Developers Blog
B
Blog
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿

博客园 - fogwu

豆包加开源工具apache jmeter 生成网站测试报告 windows 服务器 防止黑客利用漏洞上传可执行文件的免费方法 解决js每次刷新都需要实时从服务端获取的方法 powerdesinger 生成数据库结构表图并导出pdf iis 应用程序池通过钉钉机器人进行监控 windows 系统查看文件或文件夹被哪个进程占用并解除的方法 windows server 2022 通过命令行更改远程端口 sqlsever 2008 全文索引的使用 ASP.NET ”未显示页面,因为请求实体过大“的问题处理 ubutu 安装雷池waf 宝塔 nginx 安装 免费防护墙ModSecurity 模块 laravel postman api 请求, 表单验证不通过,不返回错误信息的json 而是返回302重定向 Windows Server 下 IIS 申请部署 Let's Encrypt 证书实现 免费 HTTPS h5 自适应页面背景图无法自动适应的问题 iis 部署SSL 出现错误的处理方法推荐 think\db\Raw could not be converted to string 错误的处理方式 - fogwu 解决使用js 打印当前页面时会多出一页空白纸张的问题 windiows 显卡安装指定旧版驱动 mysql 5.6 升级到 5.7 教程 winows 下iis+nginx +php 部署 windows cmd 命令中使用grep 查找 mediawiki 调用外站内容方法
uni-app 开发微信小程序 onLaunch后再执行页面onLoad
fogwu · 2025-01-12 · via 博客园 - fogwu

因为需要在onLoad调用用户登陆信息数据,网上找了都是使用原生小程序开发的,没有uni-app解决问题的办法,现记录下来。

1、在app.vue onLaunch 注意,这里一定要使用(that.$scope.checkLoginReadyCallback)而不是that.checkLoginReadyCallback。是因为在定义于 App() 内的函数中,或调用 App 前调用 getApp() ,可以通过 this.$scope 获取对应的app实例。如果直接使用that.checkLoginReadyCallback只能获得未定定义的结果,详见官方文档 https://uniapp.dcloud.net.cn/tutorial/page.html#getapp

export default {
globalData: {

isSessionkey:false, //onLaunch是否已经执行完毕},

onLaunch: function(options) {


 wx.login({
	success(res) {
		 if (res.code) {
                ......
        that.globalData.isSessionkey=true;
	//由于这里是网络请求,可能会在 Page.onLoad 之后才返回  在onLoad中定义下app.checkLoginReadyCallbac 后才执行下述 that.$scope.checkLoginReadyCallback,此时用户数据肯定得到了,回调内再则可获取到用户数据				  
	if (that.$scope.checkLoginReadyCallback){
									      
	    that.$scope.checkLoginReadyCallback(true);
	}


}
}

 2、在页面onLoad中调用

onLoad() {
    
            let that = this;
            
            //判断onLaunch是否执行完毕
            if (app.globalData.isSessionkey){    
              //初始化页面数据方法
            }else{
                
              app.checkLoginReadyCallback = res => {
                
               //初始化页面数据方法
              };
              
            
            }
          
          },