问题描述:
在支付宝内的h5网页调支付宝网页支付,支付成功后会弹窗支付宝自带的支付成功界面,点击右上角完成时 回到我们自己的网页后网页直接被退出了。
在微信网页里面并不会这样 即使点击完成 依旧会回到我们的网页,网上找了半天也没有找到相似的问题与解决方法。
在此记录一下,同时为以后遇到相似问题的网友提供一个思路。
思路:
那天偶然翻支付宝H5文档时,注意到这样的提示(老版支付宝H5文档)
注意我圈出来的一段话,他的意思是说 如果重复打开一个已存在的界面 ,则会关闭这个应用的所有界面。
我的理解是 支付成功后 支付宝弹出了支付成功的界面 , 把我们的界面压下去了, 状态依旧存在 点击完成时 又重新打开这个界面 则关闭了当前的一个窗口,因为我用的vue使用router进行页面跳转,但其实都是在一个窗口里面 所以关闭时我们的窗口直接被关闭了。
重点来了
根据以上思路,既然他要关闭 我们就创建一个单独窗口供他关闭,
在要调用支付时使用 JSSDK的 ap.pushWindow 去创建一个新窗口 在这个里面发起支付 支付完成后会关闭这个窗口 而不会关闭我们之前的窗口。
nice 机智如我