小程序被调用后如何关闭自己并携带参数返回?
发布于 5 年前 作者 qiangluo 7955 次浏览 来自 问答

有2个小程序,一个是A,一个是B;

A通过navigateToMiniProgram跳到B的Bpage页,Bpage页通过navigateBackMiniProgram用extraData携带参数返回A,A再根据返回参数执行后续操作。

这个时候希望B返回A后,B的程序关掉,或者返回B的首页index。目的是想不让用户这个时候再直接打开B时,看到的还是当前页Bpage,希望用户单独打开B时,在首页index。

试过诸如下面的用法,也就是B返回A成功后,B再回到index首页,但这种作法在android手机上测试没问题。Iphone上面会有点问题:

wx.navigateBackMiniProgram({

extraData: {

Status: '1'

},

success(res) {

wx.redirectTo({

url: '/pages/index/index',

})

}

})


Android(魅族16X):

操作一:B->A后,A再到B,是到了Bpage页。(结果正确)

操作二:B->A后,把A也关了,直接打开B,是到了Index页(结果正确)


Iphone6S:

操作一:B->A后,A再到B,是到了Index页。(结果错误)

操作二:B->A后,把A也关了,直接打开B,是到了Bpage页并且马上自动跳到Index页(结果正确,但不理想)


感觉是不是Iphone慢半拍啊???不知道是不是我的办法有问题。之前也看到过 通过navigator组件来实现,open-type="exit" target="miniProgram"

这种达不到我的目的,因为我是希望被调用的这一页要带数据返回到调用页。

大神们,有什么好办法没有?


2 回复

可以考虑socket通信

https://developers.weixin.qq.com/miniprogram/dev/api/base/app/life-cycle/wx.getLaunchOptionsSync.html

场景值判断下,从小程序跳转到此页面就正常运行操作,否则直接reLaunch到index

回到顶部