项目场景:
h5接入腾讯人脸核身(移动h5)
问题描述
在接入腾讯移动h5后,人脸核身完成后,腾讯进行页面回调,这时候使用uniapp原生的返回api方法会失效。uni.navigateBack()
原因分析:
由于页面回调后导致当前页面刷新,使用getCurrentPages()
方法获取页面栈只有当前页面页面无法返回,一直在当前页面刷新闪烁。
解决方案:
想到的解决方案使用原生js的history对象,封装一个兼容uniapp api和原生js的返回的方法。
const navigateBack = (params) => {
const pages = getCurrentPages()
if (pages.length === 1) {
if (typeof params === 'number') {
history.go(-params)
} else {
history.back()
}
} else {
uni.navigateBack()
}
}