公众号微信支付ios和android,uni-app微信公众号支付和分享,特别是ios下的配置,完美解决...

一、支付

由于在ios中uni-app发布的应用是单应用,不管访问哪个页面,始终记录的是首次进来的那个页面。

这样的话,在微信支付签名时会报签名不对的错误。怎么解决?

老王的解决方案是在main.js下加上以下代码:

//#ifdef H5

app.$router.afterEach((to, from) => {

const u = navigator.userAgent.toLowerCase()

if (u.indexOf("like mac os x") < 0 || u.match(/MicroMessenger/i) != 'micromessenger') return

if (to.path !== global.location.pathname) {

location.assign(config.h5_addr + to.fullPath);

}

})

//#endif

什么意思呢?支付无非就是要当前页的链接到后台签名,这个页面需要配置到微信支付授权目录。

这段代码就是通过vue全局钩子函数,动态改变浏览器地址。

自此,支付问题完美解决。

二、分享

分享的话比较麻烦一点,解决方案倒还比较简单,就是判断跳转后的页面是否是分享页面,如果是的,就用window.location.href跳转。但是要实现公用的话,就需要封装方法。app内的所有跳转都走全局跳转,封装一个全局函数,然后在全局函数里定义需要分享的页面链接,跳转前判断是不是分享页面。

//判断是否分享页面

if (shareLinks.indexOf(p) > -1) {

//公众号

// #ifdef H5

window.location.href = config.app_url + config.h5_addr + url;

return;

// #endif

}

// 普通页面

uni.navigateTo({

url: url

});

至此,完美解决了uni-app在ios下的公众号分享跟支付问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值