uni-app iOS应用在后台时,通过通用链接进入 plus.runtime.arguments为空
uni-app iOS应用在后台时,通过通用链接进入 plus.runtime.arguments为空
信息类别 | 详细信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Mac |
PC开发环境操作系统版本号 | 11.2.1 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.1.2 |
手机系统 | iOS |
手机系统版本号 | IOS 14 |
手机厂商 | 苹果 |
手机机型 | XS |
页面类型 | nvue |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
- app完全退出,通过通用链接打开app,
console.log(plus.runtime.arguments)
,输出为链接本身。 - app切换到后台,通过通用链接打开app,
console.log(plus.runtime.arguments)
,输出为空字符串。
预期结果:
第2步应正确输出参数
实际结果:
输出的为空字符串
bug描述:
app完全退出的情况下,通过通用链接打开app,能够通过plus.runtime.arguments
获取到参数,即链接本身。app在后台运行的情况下,则通过plus.runtime.arguments
获取到的参数为空,导致无法跳转至指定路径。
更多关于uni-app iOS应用在后台时,通过通用链接进入 plus.runtime.arguments为空的实战教程也可以访问 https://www.itying.com/category-93-b0.html
延时500毫秒在获取试一下
更多关于uni-app iOS应用在后台时,通过通用链接进入 plus.runtime.arguments为空的实战教程也可以访问 https://www.itying.com/category-93-b0.html
您好,测了,延迟500毫秒、2000毫秒也获取不到。
使用官方基座测试没有问题,测试地址 https://demo.dcloud.net.cn/ulink/
再次测试,开启hbuilder调试且开启里面的js调试,无法获取iOS app在后台运行时传来的plus.runtime.arguments数据。关闭js调试后正常了。
同时,也不需要延时获取。
谢谢,应该是已ok了。
回复 njtv: 原来如此
回复 njtv: 楼主可以复现一下步骤嘛,我也遇到这个问题
回复 njtv: 请问是怎么解决的呢?我也遇到这个问题了。关闭js调试指的是什么调试呢?
这是一个已知的iOS平台限制问题。在uni-app中,当应用处于后台时,通过通用链接(Universal Link)唤醒应用,plus.runtime.arguments可能无法正确获取参数。
解决方案建议:
- 使用plus.runtime.launcher获取启动来源
- 在App.vue的onShow生命周期中处理通用链接
- 实现application:continueUserActivity:方法捕获通用链接
示例代码:
// App.vue
onShow: function() {
if(plus.runtime.launcher === 'scheme') {
// 处理通用链接逻辑
let args = plus.runtime.arguments;
if(args) {
// 解析参数
}
}
}