項目中要在微信底下開發單頁應用(SPA),前端技術選型用的angular4,就是按照官方文檔來配置的路由,而後我在AppComponent這個根組件裏面去調用了後端的接口來獲取微信的受權,在某一個組件裏面調用了微信的掃一掃的功能,當我點擊了按鈕,納尼沒反應,後端接口沒報錯,這時候按照慣例就去微信開發者工具的控制檯裏面看一下微信的jsSDK有沒有受權成功,結果看到受權也沒問題。angular1也是這樣用的,都沒問題,angular4結果出問題了,莫名的想罵微信一句。 沒辦法只能找找緣由,結果發現angular1用的hash路由,angular4默認沒有hash路由,查閱angular4的文章使用hash路由:javascript
// 使用hash路由
export const routing = RouterModule.forRoot(routes, {'useHash':true});
複製代碼
哈哈果真就解決問題。前端
發現調用微信的分享功能,分享地址我獲取的是當前頁面的地址,因爲用的是hash路由,分享出去的時候發現別人怎麼都沒法進到分享的那個頁面,經查找是微信把#後面的東西全去掉了,最後發如今#前面加一個?就解決了問題。java