日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

使用Android開發接入第三方原生SDK實現微信登錄

瀏覽:160日期:2022-06-08 09:02:39

微信開放平臺 : https://open.weixin.qq.com/

一、準備工作 :

1. Android Studio環境下:在build.gradle文件中,添加如下依賴即可:

dependencies { implementation’com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+’}

2. 在清單文件AndroidManifest.xml中加入權限:

<uses-permission android:name='android.permission.INTERNET'/> <uses-permission android:name='android.permission.ACCESS_NETWORK_STATE'/> <uses-permission android:name='android.permission.ACCESS_WIFI_STATE'/> <uses-permission android:name='android.permission.READ_PHONE_STATE'/> <uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE'/>

二、接入 :

1. 注冊微信:

想要使我們的程序啟動之后,微信終端可以響應我們我們的程序的話.就必須在代碼中像微信終端注冊我們的id

(可以在程序的入口Activity的OnCreat中注冊,也可以在MyApplication中,或者是在其他合適的地方將我們的應用id注冊到微信),此處在Application中:

// 1.聲明一個statid的IWXAPI 以及APPIDprivate static IWXAPI mWxApi;private String WX_APPID = ''; // 2.初始化微信SDKmWxApi = WXAPIFactory.createWXAPI(this, WX_APPID, true);mWxApi.registerApp(WX_APPID);

2. 發起登錄

if (BaseApplication.mWxApi!= null && BaseApplication.mWxApi.isWXAppInstalled()) { final SendAuth.Req req = new SendAuth.Req(); req.scope = 'snsapi_userinfo'; req.state = 'wechat_sdk_fth'; BaseApplication.mWxApi.sendReq(req); } else { Toast.makeText(LoginActivity.this, '您還沒有安裝微信', Toast.LENGTH_SHORT).show(); }

3. 新建一個包 包名為wxapi,新建一個類名為WXEntryActivity的類,這個類名和包名是微信規定的,木有辦法,必須一致了

然后在清單文件AndroidManifest.xml中聲明該類:

<!-- 注冊微信回調 WXEntryActivity --><activity android:name='.wxapi.WXEntryActivity' android:configChanges='keyboardHidden|orientation|screenSize' android:exported='true' android:screenOrientation='portrait' android:theme='@style/NoTitleTranslucentTheme'></activity>

4. WxEntryActivity類代碼如下:

public class WXEntryActivity extends Activity implements IWXAPIEventHandler { private Bundle bundle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); BaseApplication. mIwapi.handleIntent(getIntent(), WXEntryActivity.this); //必須調用此句話 } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); BaseApplication. mIwapi.handleIntent(intent, WXEntryActivity.this);//必須調用此句話 } @Override public void onReq(BaseReq req) { System. out.println(); } /** * API:https://open.weixin.qq.com/ cgi- bin/showdocument ?action=dir_list&t=resource/res_list&verify=1&id=open1419317853 &lang=zh_CN * 在此處得到Code之后調用https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code 獲取到token和openID。 * 之后再調用https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID 獲取用戶個人信息 */ @Override public void onResp(BaseResp arg0) { bundle=getIntent().getExtras(); SendAuth.Resp resp = new SendAuth.Resp( bundle); //獲取到code之后,需要調用接口獲取到access_token if (resp. errCode == BaseResp.ErrCode. ERR_OK) { String code = resp. token; if(BaseApplication. isWxLogin){ getToken(code); } else{ WXEntryActivity. this.finish(); } } else{ WXEntryActivity. this.finish(); } } //這個方法會取得accesstoken 和openID private void getToken(String code){ MyProgressDialog. showDialog(WXEntryActivity.this, '登陸', '正在獲取用戶信息' ); HttpBase. get('https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxd7673d08f6c1963d&secret=223d726f966031f30125d0e4e7d4aed3&code=' +code+'&grant_type=authorization_code' , new JsonHttpResponseHandler(){ @Override public void onSuccess( int statusCode, JSONObject response) { super.onSuccess(statusCode, response); getUserInfo(response.optString( 'access_token'),response.optString( 'openid')); } @Override public void onFailure( int statusCode, Throwable e, JSONObject errorResponse) { // TODO Auto-generated method stub super.onFailure(statusCode, e, errorResponse); MyProgressDialog. closeDialog(); } }); } //獲取到token和openID之后,調用此接口得到身份信息 private void getUserInfo(String token,String openID){ HttpBase. get('https://api.weixin.qq.com/sns/userinfo?access_token=' +token+'&openid=' +openID, new JsonHttpResponseHandler(){ @Override public void onSuccess( int statusCode, JSONObject response) { super.onSuccess(statusCode, response); try { String nickname = response.getString('nickname');//獲取用戶微信名 String sex = response.getInt('sex') == 1 ? '男' : '女';//獲取用戶性別 String header = response.getString( 'headimgurl');//獲取用戶頭像 } catch (JSONException e) { e.printStackTrace(); } } @Override public void onFailure( int statusCode, Throwable e, JSONObject errorResponse) { super.onFailure(statusCode, e, errorResponse); MyProgressDialog. closeDialog();//隱藏dialog HttpBase. onFailureTips(WXEntryActivity.this, errorResponse); } }); }}

到這里就歐克了!

補充知識:Android接入微信sdk,使用微信授權

接入微信sdk,進行授權,第一個最基本也是最重要的步驟,需要注意應用的包名、應用簽名(如果不知道的可以使用新浪簽名工具查看,或者微信提供的工具),app id (微信申請成功之后可以獲得) 三者必須要與微信上申請的一致,否者將會無法成功調起微信。

1、在自己的項目上創建一個按鈕

2、新建一個Constans.java的類,存放微信支付相關的參數

public class Constants { public static final String APP_ID = 'wxxxxxxx'; //替換為申請到的app id}

3、在MyApplication.java類里面進行實例化

4、在登錄頁面注冊點擊事件 , 跳轉微信授

scope 因為是獲取用戶個人信息所以固定填 snsapi_userinfo

state 可填可不填的參數,按官方建議最好填寫,可用于防止csrf攻擊(跨站請求偽造攻擊)

5、這時候就可以調起微信授權了,但是如果需要得到微信返回的結果,還需要以下的步驟

1)在包名下新增wxapi文件夾(這個文件夾名字是微信官方規定的,必須一致)

2)在wxapi文件夾下新增繼承于Activity并實現IWXAPIEventHandler接口的WXEntryActivity類(這個類名是微信官方規定的,必須一致)

if(baseResp instanceof SendAuth.Resp){ SendAuth.Resp newResp = (SendAuth.Resp) baseResp; //獲取微信傳回的code final String code = newResp.code;}

獲得的code就是微信授權成功后給的臨時票據,可以根據code獲取相關的用戶 access_token 和 openid , 然后根據 access_token 和 openid 獲取用戶信息

6、在AndroidManifest.xml中對WXEntryActivity進行配置

1)增加權限

2)增加WXEntryActivity的配置

其中android:exported='true' 必須加上,否則無法接收回調

7、編譯生成運行,即可發起微信登錄并得到微信返回。

如果還是不行,注意是否以下問題引起:

1)app id是否正確?

2)包名是否和申請時填寫的一致?

3)應用簽名是否和申請時填寫的一致?(可以用簽名生成工具對比一下)通常可能發生的情況是,申請用的簽名包,調試用的非簽名包,這種情況很常見。

4)WXEntryActivity.java文件的位置是否正確

5)AndroidManifest.xml中的配置是否正確?

6)公眾號、移動應用之間統一帳號的話,可利用unionID來滿足需求,因為微信返回的openid是根據app id 進行生成的,這樣就導致了如果是H5授權那么和Android得到的id不一致

最后附上微信開放平臺官方地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317851&token=&lang=zh_CN

以上這篇使用Android開發接入第三方原生SDK實現微信登錄就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: 微信
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
麻豆精品在线| 岛国精品一区| 天堂√8在线中文| 麻豆视频一区二区| 国产精品xxxav免费视频| 免费在线欧美黄色| 麻豆一区二区三| 精品视频自拍| 正在播放日韩精品| 九九精品调教| 亚洲电影有码| 亚洲欧美视频| 亚洲人亚洲人色久| 欧美精品三级在线| 日本三级亚洲精品| 国产精品久久国产愉拍| 精品无人区麻豆乱码久久久| 热三久草你在线| 99国产成+人+综合+亚洲欧美| 首页国产欧美日韩丝袜| 日本少妇精品亚洲第一区| 精品中文字幕一区二区三区| 久久裸体视频| 日韩精品社区| 国产成人精品一区二区三区免费 | 电影91久久久| 国产91在线精品| 国产字幕视频一区二区| 视频一区中文字幕精品| 国产精品红桃| 成人精品中文字幕| 蜜桃久久精品一区二区| 国产欧美88| 91精品啪在线观看国产18| 男人的天堂久久精品| 国产亚洲人成a在线v网站| 亚洲一二三区视频| 精品色999| 色乱码一区二区三区网站| 国产麻豆精品久久| 日韩中文在线电影| 中文字幕在线视频久| 国产精品毛片aⅴ一区二区三区| 国产一卡不卡| 欧美中文字幕一区二区| 日韩视频久久| 亚洲精品大全| 日本不良网站在线观看| 亚洲精品乱码久久久久久蜜桃麻豆 | 日韩中文av| 国产精品天堂蜜av在线播放| 亚洲欧洲高清| 欧美日本一区| 亚洲欧美日韩高清在线| 老牛国内精品亚洲成av人片| 蜜桃视频一区二区| 私拍精品福利视频在线一区| 欧美中文高清| 在线综合亚洲| 毛片在线网站| 麻豆精品视频在线观看| 亚洲一级淫片| 不卡av一区二区| 国产v日韩v欧美v| 国产精品任我爽爆在线播放| 神马午夜久久| 久久中文精品| 国产欧美日本| 日本一不卡视频| 国产精品嫩草99av在线| 97精品在线| 国产激情综合| 日本成人在线网站| 日韩在线a电影| 好吊视频一区二区三区四区| 高潮一区二区| 国产不卡精品在线| 国产精品mv在线观看| 亚洲精品日韩久久| 亚洲欧美视频| 欧美日韩精品免费观看视频完整| 手机在线电影一区| 精品国产乱码久久久久久樱花| 国产剧情一区二区在线观看| 日韩高清一区在线| 日韩国产一二三区| 日本成人一区二区| 日韩和欧美一区二区| 视频国产精品| 日韩精品一区二区三区中文在线| 亚洲综合不卡| 蜜桃久久av| 一区二区三区国产盗摄| 日韩精品一级中文字幕精品视频免费观看| 欧洲激情综合| 欧美在线资源| 欧美另类专区| 久久国产精品久久久久久电车| 日韩一区二区免费看| 亚洲黄页一区| 男人的天堂亚洲一区| 亚洲精品观看| 日本va欧美va瓶| 青青伊人久久| 久久久久97| a天堂资源在线| 成人精品亚洲| 国产亚洲福利| 婷婷综合国产| 国产精品嫩模av在线| 老牛国内精品亚洲成av人片| 麻豆精品av| 日韩和的一区二在线| 亚洲精品1区2区| 亚洲精品在线a| 欧美国产先锋| 亚洲精品在线影院| 99视频+国产日韩欧美| 亚洲一区av| 国产精品一区二区精品| 国产a亚洲精品| 女人av一区| 日韩高清二区| 超碰在线99| 久久国产精品毛片| 国产精品极品在线观看| 精品国产午夜| 红桃视频国产精品| 91av一区| 波多野结衣久久精品| 亚洲少妇诱惑| 国产欧美日韩一区二区三区在线| 精品国产午夜| 亚洲激情中文在线| 青青草精品视频| 日本不卡免费高清视频在线| 在线亚洲精品| 国产精品一区二区av日韩在线| 欧美三级精品| 亚州国产精品| 色老板在线视频一区二区| 亚洲国产成人精品女人| 欧美日韩网址| 亚洲福利精品| 久久精品99久久久| 亚洲特级毛片| 麻豆精品少妇| 亚洲欧美高清| 风间由美中文字幕在线看视频国产欧美| 1024精品一区二区三区| 欧美自拍一区| 婷婷亚洲五月| 老司机精品在线| 视频一区二区中文字幕| 成人污污视频| 日韩在线黄色| 色爱av综合网| 久久精品 人人爱| 亚洲激情久久| 成人精品国产亚洲| 日韩一二三区在线观看| 亚洲手机在线| 精品一二三区| 午夜性色一区二区三区免费视频| 欧美aa在线观看| 国产精品**亚洲精品| 久久亚洲欧洲| 日韩精品一区二区三区免费观看| 国产精品日韩精品中文字幕| 首页国产欧美日韩丝袜| 亚洲日本网址| 涩涩涩久久久成人精品| 亚洲福利久久| 国产传媒av在线| 国产乱人伦丫前精品视频| 99国产精品视频免费观看一公开| 久久久久久久欧美精品| 亚洲免费激情| 四虎国产精品免费观看| 天堂va在线高清一区| 一区在线视频观看| 国产成人精品亚洲日本在线观看| 国产精品videossex| 奇米色欧美一区二区三区| 亚洲综合国产| 久久在线电影| 亚洲天堂资源| 精品国产午夜肉伦伦影院| 久久国产乱子精品免费女| 亚洲免费专区| 亚洲一区中文| 国产综合婷婷| 精品国产免费人成网站| 成人免费一区| 国产一区二区三区不卡视频网站 | 激情综合自拍| 中文字幕在线看片| 国产欧美亚洲一区| 91亚洲精品在看在线观看高清| 亚洲一级大片|