android app 微信登陆

    目前第三方登陆app需求很多了。在这里做一下微信app的登陆。直说其中几个功能点。

    https://open.weixin.qq.com,首先去微信官网去注册app,然后下载demo。获取libammsdk.jar.

    在进行第三方登陆的页面进行如下的初始化:

// Constants.APP_ID 是在官网注册app时,官网分配的appid
		api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, true);
		api.registerApp(Constants.APP_ID);

  其中api类型为IWXAPI。

  然后在点击微信登陆之处做如下操作。

@OnClick({ R.id.weixinlogin })
	public void weixinLogin(View view) {
		//login(SHARE_MEDIA.WEIXIN);
		SendAuth.Req req = new SendAuth.Req();
		   
		//授权读取用户信息  
		req.scope = "snsapi_userinfo";
		 
		//自定义信息 
		req.state = "wechat_sdk_demo_test";
		 
		//向微信发送请求
		api.sendReq(req);
	}

  这是向微信发出请求,然后在你的项目的pkg name的目录下,建立一个wxapi的文件夹,里面建立一个WXEntryActivity.java的文件。他必须实现IWXAPIEventHandler这个接口,这个页面的路径一定要保证正确,微信会把请求返回结果,返回到这个界面。

    

public void onResp(BaseResp resp) {

		int result = 0;

		switch (resp.errCode) {
		case BaseResp.ErrCode.ERR_OK:
			result = R.string.errcode_success;
			String code = ((SendAuth.Resp) resp).code;
			String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid="
					+ Constants.APP_ID
					+ "&secret="
					+ Constants.APP_SECRET
					+ "&code=" + code + "&grant_type=authorization_code";
			HttpService.getWxToken(url, new NetworkInterfaceListener() {
				
				@Override
				public void onSuccess(BaseBean data) {
					// TODO Auto-generated method stub
					if(data != null) {
						Message msg = mHandler.obtainMessage();
						msg.what = 1;
						msg.obj = data;
						mHandler.sendMessage(msg);
					}
				}
				
				@Override
				public void onError(IOException e) {
					// TODO Auto-generated method stub
					
				}
			});
			break;
		case BaseResp.ErrCode.ERR_USER_CANCEL:
			result = R.string.errcode_cancel;
			break;
		case BaseResp.ErrCode.ERR_AUTH_DENIED:
			result = R.string.errcode_deny;
			break;
		default:
			result = R.string.errcode_unknown;
			break;
		}

		Toast.makeText(this, result, Toast.LENGTH_LONG).show();
	}

  在这个函数里面当返回err_ok时,通过指定的url通过get方法获取token,然后根据token可以获取个人信息之类的东西。其中appid和appsecret都是注册的时候官方分配的。这个关键的地方是实现WXEntryActivity.java这个文件,要在指定目录实现。可以在这个文件中做一个loading框不停的旋转。通过获取token之后获取个人信息,然后再登陆自己项目的第三方登陆接口。整个流程就是这样。 

android app 微信登陆

上一篇:微信公众平台开发错误记录


下一篇:微信:JSSDK开发