项目中遇到的坑,搞了几天,终于解决了,现整理一下:
本人app项目是uni-app开发的安卓和iOS版本,安卓测试无问题,以下主要说iOS的解决方案。
问题点:app用webview打开H5页面,在H5页面发起微信支付(非app支付)唤醒微信打开支付,此时放弃支付或者支付完成,微信默认打开safari浏览器,没有返回app。
1.在H5页面,发起支付时,后端写一个接口去访问微信的接口,微信会返回一段链接,直接回调给前端,前端处理代码如下:
//请求后台接口获取url
$.ajax({
url:"",
type:"post",
data:{},
success: function (data) {
//拼接自己定义的返回页面,注意一定要encodeURIComponent
let myUrl="www.公司域名.com://参数xxx";
//唤起微信
window.location.href=data+"&redirect_url="+encodeURIComponent(myUrl);
}
})
支付完成/取消回调
www.公司域名.com:// 作用是访问这个“地址”能唤醒app,就像你能唤醒手机上app一样,他们都给自己取了一个名字是“UrlSchemes”
注意:首先需要在uni-app配置中 配置iOS 的UrlSchemes 配置位置在(app常用其他设置)配置过之后需打包才能生效,然后在Safari中获取app的其他浏览器中输入你的UrlSchemes+“: //”成功唤醒你的a