uni-app scheme方式打开APP无法正常获取launcher

uni-app scheme方式打开APP无法正常获取launcher

产品分类:

uniapp/App

PC开发环境操作系统:

Mac

PC开发环境操作系统版本号:

10.15.5

HBuilderX类型:

正式

HBuilderX版本号:

2.9.3

手机系统:

iOS

手机系统版本号:

IOS 14

手机厂商:

苹果

手机机型:

iphone12

页面类型:

nvue

打包方式:

云端

项目创建方式:

HBuilderX

示例代码:

onShow: function() {
// #ifdef APP-PLUS
setTimeout(() => {
const args = plus.runtime.arguments;
const launcher = plus.runtime.launcher;
console.log(args);
console.log(launcher);
}, 500);
// #endif
console.log('App Show');
},

操作步骤:

  1. 使用scheme打开app
  2. 无法获取到launcher

预期结果:

正常获取

实际结果:

获取错误

bug描述:

使用scheme方式打开APP,plus.runtime.launcher获取到值是default,以及plus.runtime.arguments都是无法正常获取的


更多关于uni-app scheme方式打开APP无法正常获取launcher的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

安卓没有问题,只有iOS有问题

更多关于uni-app scheme方式打开APP无法正常获取launcher的实战教程也可以访问 https://www.itying.com/category-93-b0.html


收到 我们查一下

回复 天生DR:已解决,删除condition就行了

回复 YXW: 好的

针对你遇到的scheme方式打开APP无法获取launcher和arguments的问题,这是iOS平台上的一个已知限制。以下是关键点分析:

  1. iOS平台限制:
  • 在iOS上,通过scheme启动应用时,plus.runtime.launcher通常会返回"default"而不是实际的启动来源
  • 参数传递(plus.runtime.arguments)在iOS上也可能无法正常获取
  1. 解决方案: 建议改用以下方式处理scheme启动:
onShow() {
    // #ifdef APP-PLUS
    if(plus.runtime.launcher === 'scheme') {
        // 处理scheme启动逻辑
        const url = plus.runtime.arguments;
        console.log('Scheme URL:', url);
    }
    // #endif
}
回到顶部