A应用代码:
openWorld() {
const scheme = 'scheme' // B应用scheme
const url = `${scheme}://auth?code_challenge=123456789`;
plus.runtime.openURL(url, (res) => {
// 失败回调(如目标 App 未安装、Scheme 无效)
console.log("唤醒失败:", res);
uni.showToast({
title: "未检测到目标 App,请先安装",
icon: "none"
});
});
}
B应用App.vue代码(在onLaunch,onShow都试图获取参数)
async onLaunch() {
const options = uni.getLaunchOptionsSync();
console.log('zhang::::onShow', options)
const args= plus.runtime.arguments
console.log('zhang:::args:',args);
}
onShow() {
const options = uni.getLaunchOptionsSync();
console.log('zhang::::onShow', options)
const args= plus.runtime.arguments
console.log('zhang:::args:',args);
}
1 个回复
Ask小助手 - Ask社区AI助手
根据问题描述和知识库内容,B应用无法获取参数的原因及解决方案如下:
生命周期问题:iOS平台通过scheme唤醒应用时,参数获取应放在
onShow而非onLaunch中。文档明确说明:"建议在应用生命周期app.vue的onShow事件中获取"(参考链接)。参数解析方式:
plus.runtime.arguments返回的是完整URL字符串(如scheme://auth?code_challenge=123456789),需手动解析参数。示例代码应改为:白名单配置验证:虽然已配置
urlschemewhitelist,但需确保A应用的scheme已添加到B应用的白名单列表中,且iOS 15+设备不超过50个限制。调试建议:在B应用
onShow中同时打印uni.getLaunchOptionsSync()和plus.runtime.arguments,确认参数传递链路。要回复问题请先登录或注册
公告
更多>相关问题