1. 程式人生 > >踩坑!android端整合微信第三方登入

踩坑!android端整合微信第三方登入

本篇記錄 app 端獲取到微信 code 的過程。用 code 獲取 access_token 的過程是後臺伺服器完成的。(當然也可以由 app 端自己去拿 code 換取 access_token,這裡考慮到如果是後臺獲取token,android 和 ios 兩個人都省事,所以就麻煩了後臺老哥們)

這裡假設你已經註冊了微信開放平臺的開發者賬號,並且已經申請了 appkey 和 appid

新增 gradle依賴

這裡寫圖片描述

配置清單檔案

這裡寫圖片描述

發起微信登入請求

這裡寫圖片描述

微信登入的回撥處理

  • 在包名目錄下建立 wxapi 資料夾

這裡寫圖片描述

  • 建立類 WXEntryActivity 並在清單檔案中註冊

這裡寫圖片描述

  • 回撥監聽資料的處理

這裡寫圖片描述

成功獲取 code 的示例

這裡寫圖片描述

坑來了

  • 專案很早之前有這麼個需求,就是開發版和正式版要同時安裝到手機上,就像兩個不同的app,於是就利用 gradle 實現了動態修改包名來達到這個目的。(坑挖的也是挺隱蔽挺深的)。

  • 前一段時間要整合微信登入了,ok照著文件一步步來,反覆測試反覆確認,就是不能調起微信,各種偏方都試了還是不行,就這樣耗了兩天,突然靈光一閃,會不會是動態改包名的鍋?

  • 來一波分析,當前 module 的目錄結構是 com/xxx/app, 正式版包名com.xxx.release,測試版包名com.xxx.app,當打正式包的時候,目錄結構跟正式版版包名不一致,ok,直接更改目錄結構為com/xxx/release
    打正式包測試,完美解決。。

假裝有個總結

有時候有些bug,真的是很詭異很奇怪,當 baidu google 都幫不了你的時候,先別放棄,不妨靜下心來好好想想,多試試,總能解決的。