在友盟分享的基礎上整合微信登入
剛開始做微信登入整合的時候,
專案已經整合了友盟分享,
有問iOS那邊是怎麼弄的,
是直接用友盟的還是微信的,
然後iOS那邊說了一句用的是微信的,
然後我就默默地去微信開發平臺去看文件去了,
說實話,
微信的文件真是差,
而且demo是很久之前的...
不知道多久沒更新了,
我有看到一些程式碼的註釋是12年寫的....
按文件寫了一些,
沒成就直接不用微信的了,
直接去用友盟的....
友盟文件地址:http://dev.umeng.com/social/android/quick-integration
按友盟的文件弄好需要整合的檔案之後,
然後再包名下加個wxapi的包,
然後建立一個WXEntryActivity,
繼承自WXCallbackActivity.
public class WXEntryActivity extends WXCallbackActivity {
}
然後再點選事件的時候呼叫下面的程式碼.
private void loginwithWechat() {
if (!MyApplication.api.isWXAppInstalled()) {
showToast(getString(R.string.msg_no_wechat));
} else {
UMShareAPI mShareAPI = UMShareAPI.get(context);
mShareAPI.doOauthVerify(getActivity(), SHARE_MEDIA.WEIXIN, umAuthListener);//授權
}
}
private UMAuthListener umAuthListener = new UMAuthListener() {
@Override
public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
//授權成功 然後獲取使用者資訊
UMShareAPI mShareAPI = UMShareAPI.get(context);
mShareAPI.getPlatformInfo(getActivity(), SHARE_MEDIA.WEIXIN, umAuthListener1);
}
@Override
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
Toast.makeText(context, "授權失敗", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel(SHARE_MEDIA platform, int action) {
Toast.makeText(context, "授權取消", Toast.LENGTH_SHORT).show();
}
};
private UMAuthListener umAuthListener1 = new UMAuthListener() {
@Override
public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
String json = "{\"openid\":\"" + map.get("openid") + "\","
+ "\"nickname\":\"" + map.get("screen_name") + "\","
+ "\"sex\":\"" + map.get("gender") + "\","
+ "\"province\":\"" + map.get("province") + "\","
+ "\"city\":\"" + map.get("city") + "\","
+ "\"country\":\"" + map.get("country") + "\","
+ "\"headimgur\":\"" + map.get("profile_image_url") + "\","
+ "\"privilege\":[],"
+ "\"unionid\":\"" + map.get("unionid") + "\"}";
//再呼叫你們後臺寫的微信登入相關的介面,
}
@Override
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
Toast.makeText(context, "獲取使用者資訊失敗", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel(SHARE_MEDIA platform, int action) {
Toast.makeText(context, "取消獲取使用者資訊", Toast.LENGTH_SHORT).show();
}
};
話說為什麼友盟獲取到使用者的基本資訊之後,
存到map中的key並不是微信返回的欄位,
所以就有了上面那個json字串拼接的程式碼...
上面程式碼寫得比較爛,
可以再自行修改下.
有問題請留言.
如果你喜歡我寫的文章,
請關注我!
相關文章
- iOS 微信支付SDK與微信友盟分享兩者同時整合時,出現的問題與解決之路。iOS
- Android 友盟社會化分享的整合與封裝Android封裝
- 友盟整合(十二) —— 幾個遇到的坑之HTTP分享到微博失敗(二)HTTP
- 微信登入
- Spring Security 整合 微信小程式登入的思路探討Spring微信小程式
- keycloak整合微信登陸~解決國內微信整合的問題
- 【網頁登入】QQ 登入、微信登入、微博登入、GitHub 登入網頁Github
- 實現友盟分享
- 封裝QQ、微信、微博的第三方登入和分享封裝
- 微信小程式登入微信小程式
- 微信授權登入
- 微信登入外掛
- 微信掃碼登入
- Spring Security整合企業微信的掃碼登入,企微的API震驚到我了SpringAPI
- 讓手機微信在電腦微信不下線的前提下退出登入的方法
- 微信登入+商品瀏覽
- java實現微信登入Java
- 微信小程式的登入體系微信小程式
- 微信小程式的授權登入微信小程式
- 基於Taro框架的微信小程式JWT授權登入方案框架微信小程式JWT
- [API 寫法] QQ 登入、微信登入、Facebook、google、蘋果登入APIGo蘋果
- 微信小程式之登入態的探索微信小程式
- 微信小程式登入那些事微信小程式
- java 微信授權登入配置Java
- 微信授權註冊或微信登陸 微信授權登陸 基於若依vue 實現Vue
- 記寫 android 微信登入的demo歷程Android
- 淺析微信掃碼登入原理
- PHP對接微信掃碼登入PHP
- 微信登入協議分析記錄協議
- 微信小程式手機號登入微信小程式
- 微信小程式零基礎入門踩坑之路微信小程式
- 對友盟分享(Umeng-Share)的功能封裝封裝
- React Native 結合友盟實現分享React Native
- H5頁面在微信端的分享H5
- laravel社會化登入 iframe微信網頁登入失敗的問題Laravel網頁
- 【微信小程式】為什麼你在手機上預覽時無法使用微信聯合登入微信小程式
- 微信小程式登入方式的修改解決方案微信小程式
- 微信掃碼登入的技術實現思考
- 第三方登陸:微信掃碼登入