//跳转到B小程序以及传参给B小程序
const goThirdPartyFaceVerify = () => {
uni.navigateToMiniProgram({
appId: '', //B小程序的appid
path: `/page/index/index?name=张三` ,//B小程序的页面地址
// envVersion: 'trial', //B小程序的开发版本 正式版本注释即可。
success(res) {
},
fail(res) {
},
});
};
//接受B小程序传参
const listenParty = () => {
//这个函数是在小程序页面被遮挡再展开就会执行,例如打开B小程序=>B小程序关闭时候,或者预览图片的时候等等
uni.onAppShow(async (res) => {
let extraData = res.referrerInfo.extraData;
if (extraData && extraData.verifyResult) {
try {
//接收到参数时候去执行自己需要的方法
} catch (error) {
console.error(error);
} finally {
//取消监听
uni.offAppShow();
}
}
});
};
本人遇到的一个大坑就是,onAppShow事件一直执行,一开始的思路是在uni.onAppShow里面添加一个flag,这样是不行的,无法避免再预览图片的时候onAppShow仍然执行,因此就需要在uni.onAppShow外面加一个flag
let isVerifying = ref(false); //只有在跳转到B小程序的时候设置为true
//跳转到B小程序以及传参给B小程序
const goThirdPartyFaceVerify = () => {
uni.navigateToMiniProgram({
appId: '', //B小程序的appid
path: `/page/index/index?name=张三` ,//B小程序的页面地址
// envVersion: 'trial', //B小程序的开发版本 正式版本注释即可。
success(res) {
isVerifying.value = true;
},
fail(res) {
},
});
};
const listenParty = () => {
if (isVerifying.value) {
//这个函数是在小程序页面被遮挡再展开就会执行,例如打开B小程序=>B小程序关闭时候,或者预览图片的时候等等
uni.onAppShow(async (res) => {
let extraData = res.referrerInfo.extraData;
if (extraData && extraData.verifyResult) {
try {
//接收到参数时候去执行自己需要的方法
} catch (error) {
console.error(error);
} finally {
isVerifying.value = false;
//取消监听
uni.offAppShow();
}
}
});
}
};
watch(
() => isVerifying.value,
() => listenParty(),
);
心得:有时候一直卡在那里不妨换一种思路,里面不行试试外面,东边不行试试西边,或者出去透透气,别一直杵在那里,或者上头,浪费大量的时间,要学会高效的理由时间.成为一名时间管理大师
4892

被折叠的 条评论
为什么被折叠?



