项目中要在微信底下开发单页应用(SPA),前端技术选型用的angular4,就是按照官方文档来配置的路由,而后我在AppComponent这个根组件里面去调用了后端的接口来获取微信的受权,在某一个组件里面调用了微信的扫一扫的功能,当我点击了按钮,纳尼没反应,后端接口没报错,这时候按照惯例就去微信开发者工具的控制台里面看一下微信的jsSDK有没有受权成功,结果看到受权也没问题。angular1也是这样用的,都没问题,angular4结果出问题了,莫名的想骂微信一句。 没办法只能找找缘由,结果发现angular1用的hash路由,angular4默认没有hash路由,查阅angular4的文章使用hash路由:javascript
// 使用hash路由
export const routing = RouterModule.forRoot(routes, {'useHash':true});
复制代码
哈哈果真就解决问题。前端
发现调用微信的分享功能,分享地址我获取的是当前页面的地址,因为用的是hash路由,分享出去的时候发现别人怎么都没法进到分享的那个页面,经查找是微信把#后面的东西全去掉了,最后发如今#前面加一个?就解决了问题。java