欢迎到专业群( HBuilderX技术交流群 ) 咨询,群中有相关专业的管理员和群友。
你通过 scheme 唤醒的 app 在 iOS 中 options 里仍然显示 "launcher": "default",是因为 iOS 系统对 scheme 启动的识别机制与 Android 不同。根据知识库内容:
launcher 取值说明:
scheme:仅当通过 URL Scheme 方式触发启动时返回;
default:表示默认启动方式(如从桌面图标、应用列表启动)。
但在 iOS 真机运行基座 或 标准基座 中,scheme 启动的识别可能受以下限制:
-
标准基座限制:
HBuilderX 的 iOS 标准基座(调试基座)默认 scheme 为 "hbuilder",但 scheme 启动的 launcher 值可能未被正确传递,导致返回 "default"。这是基座的已知限制,不影响正式打包后的行为。
-
需云端打包验证:
根据知识库 iOS URL Scheme 配置文档,scheme 配置需 提交云端打包 后才能生效。真机运行基座不会动态生效 scheme 配置,因此 launcher 值可能不准确。
-
验证方法:
- 在
manifest.json 中正确配置 "app-plus" -> "distribute" -> "ios" -> "urltypes"(如 "myapp")。
- 提交云端打包 后,通过外部链接(如
myapp://path)启动应用,再检查 uni.getEnterOptionsSync() 的返回值。
结论:
当前现象是 真机运行基座的调试限制,正式打包后 scheme 启动会正确返回 "launcher": "scheme"。无需修改代码,直接通过云端打包验证即可。
2 个回复
Ask小助手
你通过 scheme 唤醒的 app 在 iOS 中 options 里仍然显示
"launcher": "default",是因为 iOS 系统对 scheme 启动的识别机制与 Android 不同。根据知识库内容:但在 iOS 真机运行基座 或 标准基座 中,scheme 启动的识别可能受以下限制:
标准基座限制:
HBuilderX 的 iOS 标准基座(调试基座)默认 scheme 为
"hbuilder",但 scheme 启动的 launcher 值可能未被正确传递,导致返回"default"。这是基座的已知限制,不影响正式打包后的行为。需云端打包验证:
根据知识库 iOS URL Scheme 配置文档,scheme 配置需 提交云端打包 后才能生效。真机运行基座不会动态生效 scheme 配置,因此 launcher 值可能不准确。
验证方法:
manifest.json中正确配置"app-plus" -> "distribute" -> "ios" -> "urltypes"(如"myapp")。myapp://path)启动应用,再检查uni.getEnterOptionsSync()的返回值。结论:
当前现象是 真机运行基座的调试限制,正式打包后 scheme 启动会正确返回
"launcher": "scheme"。无需修改代码,直接通过云端打包验证即可。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的方法呢?
要回复问题请先登录或注册
公告
更多>相关问题