2***@qq.com
2***@qq.com
  • 发布:2026-03-03 11:13
  • 更新:2026-03-03 11:20
  • 阅读:18

我通过scheme唤醒的app为什么options里还是 "launcher": "default"(iOS)

分类:HBuilderX
2026-03-03 11:13 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( HBuilderX技术交流群 ) 咨询,群中有相关专业的管理员和群友。

你通过 scheme 唤醒的 app 在 iOS 中 options 里仍然显示 "launcher": "default",是因为 iOS 系统对 scheme 启动的识别机制与 Android 不同。根据知识库内容:

launcher 取值说明

  • scheme:仅当通过 URL Scheme 方式触发启动时返回;
  • default:表示默认启动方式(如从桌面图标、应用列表启动)。

但在 iOS 真机运行基座标准基座 中,scheme 启动的识别可能受以下限制:

  1. 标准基座限制
    HBuilderX 的 iOS 标准基座(调试基座)默认 scheme 为 "hbuilder",但 scheme 启动的 launcher 值可能未被正确传递,导致返回 "default"。这是基座的已知限制,不影响正式打包后的行为

  2. 需云端打包验证
    根据知识库 iOS URL Scheme 配置文档,scheme 配置需 提交云端打包 后才能生效。真机运行基座不会动态生效 scheme 配置,因此 launcher 值可能不准确。

  3. 验证方法

    • manifest.json 中正确配置 "app-plus" -> "distribute" -> "ios" -> "urltypes"(如 "myapp")。
    • 提交云端打包 后,通过外部链接(如 myapp://path)启动应用,再检查 uni.getEnterOptionsSync() 的返回值。

结论
当前现象是 真机运行基座的调试限制,正式打包后 scheme 启动会正确返回 "launcher": "scheme"。无需修改代码,直接通过云端打包验证即可。

内容为 AI 生成,仅供参考
2***@qq.com

2***@qq.com (作者)

我是云端打包的,scheme配置的都没问题,现象是这样的,我第一次是通过点击app图标启动app的,这个时候没有退出app,只是在Safari的地址栏里通过自定义协议notes://xxx?spuId=123唤醒app的,这时launcher仍为default,且plus.runtime.arguments或者options都为空?uni中有没有类似- (BOOL)application:(UIApplication )app openURL:(NSURL )url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options处理openURL的方法呢?

要回复问题请先登录注册