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

操作步骤:

  1. app完全退出,通过通用链接打开app,console.log(plus.runtime.arguments),输出为链接本身。
  2. 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

10 回复

延时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可能无法正确获取参数。

解决方案建议:

  1. 使用plus.runtime.launcher获取启动来源
  2. 在App.vue的onShow生命周期中处理通用链接
  3. 实现application:continueUserActivity:方法捕获通用链接

示例代码:

// App.vue
onShow: function() {
    if(plus.runtime.launcher === 'scheme') {
        // 处理通用链接逻辑
        let args = plus.runtime.arguments;
        if(args) {
            // 解析参数
        }
    }
}
回到顶部