onShow: function() {
console.log("onShow start")
console.log("参数111",plus.runtime.arguments)
setTimeout(function(){
// 延迟之后才能打印出小程序传递给app的参数
console.log("参数222",plus.runtime.arguments)
},1000)
} - 发布:2022-03-10 18:37
- 更新:2022-03-10 20:35
- 阅读:741
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 12.1 (21C52)
HBuilderX类型: 正式
HBuilderX版本号: 3.4.1
手机系统: iOS
手机系统版本号: iOS 15
手机厂商: 苹果
手机机型: iphone xs max
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
必须是第一次获取plus.runtime.arguments才能复现。第二次获取app启动参数能获取到,因为那是错误的参数,是第一次遗留下来没被覆盖的参数。
- 杀掉app进程。确保没有历史参数
- 启动app并跳转小程序
- 小程序返回app,并传递参数给app,结果就会发现plus.runtime.arguments为空
必须是第一次获取plus.runtime.arguments才能复现。第二次获取app启动参数能获取到,因为那是错误的参数,是第一次遗留下来没被覆盖的参数。
- 杀掉app进程。确保没有历史参数
- 启动app并跳转小程序
- 小程序返回app,并传递参数给app,结果就会发现plus.runtime.arguments为空
预期结果:
onshow中能即时获取plus.runtime.arguments
onshow中能即时获取plus.runtime.arguments
实际结果:
onshow中,只能延迟能获取plus.runtime.arguments
onshow中,只能延迟能获取plus.runtime.arguments
bug描述:
如图所示,直接在onshow中打印plus.runtime.arguments,不加延迟是获取不到的。
加延迟的话,逻辑不好判断,我不清楚到底该加多少延迟才能兼容所有机型。