Android iOS 拉起微信授权页面获得code

1、下载微信官方最新的sdk,集成到app中。
2、注册到微信
可以在app的某个Activity的onCreate方法中注册,这里也可以在app的application的onCreate()方法中注册,这样,在整个app的中都可以使用。例如:
public class CarApplication  extends Application{
…… …… ……
public static IWXAPI api;
public void onCreate() {
//注册微信
api = WXAPIFactory.createWXAPI(this, “你的应用在微信上申请的app_id”, true); 
api.registerApp(“你的应用在微信上申请的app_id”);
…… …… ……
}
}
3、在app的包名目录下新建一个wxapi目录,然后在此目录下新建WXEntryActivity.java文件,如下,app的包名为carjob.com.cn,新建的wxapi目录如下。(注意:一定是包名目录下新建,不要在其他目录新建,否则WXEntryActivity.java里的public void onResp(BaseResp resp)方法不会被调用)

WXEntryActivity继承Activity,实现IWXAPIEventHandler,并重写protected void onNewIntent(Intent intent)、public void onReq(BaseReq arg0)、public void onResp(BaseResp resp)方法。WXEntryActivity.java文件可以见最后附录。

4、发送微信登录的请求(以安卓为主
Android app中点击某一个view,发送微信登录的请求如下:
final SendAuth.Req req = new SendAuth.Req();
req.scope = "snsapi_userinfo";
req.state = "carjob_wx_login";
CarApplication.api.sendReq(req);
ios  app中点击某一个view,发送微信登录的请求如下:
 SendAuthReq* req =[[[SendAuthReq alloc ] init ] autorelease ];
    req.scope = @"snsapi_userinfo" ;
    req.state = @"123" ;
    //第三方向微信终端发送一个SendAuthReq消息结构
    [WXApi sendReq:req]; 

  


其中,CarApplication.api就是第2步中注册的IWXAPI对象。
请求成功后,可拉起微信的授权登录页面,如下。用户点击“确认登录”后,SDK通过SendAuth的Resp返回数据给调用方(即app),此时WXEntryActivity中的public void onResp(BaseResp resp)方法被调用(微信、朋友圈分享成功后,此方法同样会被调用),微信登录的返回值说明如下。这里app可以做相关的处理,见WXEntryActivity.java文件中的处理,取code为下一步获取access_token和openid等信息做准备。此处获取code的方法:
public void onResp(BaseResp resp) {
switch (resp.errCode) {
case BaseResp.ErrCode.ERR_OK:
String code = ((SendAuth.Resp) resp).code; //即为所需的code
break;
…… …… …… 
}
}
posted @ 2017-11-28 15:22  策码奔腾不回头  阅读(315)  评论(0)    收藏  举报