最近在用 React
撸一个微信上的 SPA
因为组件是 Antd
Antd-Mobile
结合来用,所以框架上是采用的 Dva
Dva
默认使用的是hashHistory
路由,但是我改成了 browserHistory
然后给自己挖了个天坑!
在 browserHistory
下,微信的 wx.config()
方法会取第一个页面的路由来校验签名
比如,你访问的是
http://www.demo.com/index
多次操作后路由变成了
http://www.demo.com/list
这时候你如果在 http://www.demo.com/list
进行签名,实际上微信校验签名的时候用的 url
是 http://www.demo.com/index
。
所以这个时候你会收到温馨提示 config:invalid signature
改回来 hashHistory
就好
这个问题只在 iOS 上才会出现
猜测应该是 iOS 系统下微信的浏览器内核不兼容 browserHistory 导致的