Android 微信第三方登录系列问题

第一次做微信遇到了蛮多了问题,把自己遇到的记录下来:

微信登录分步:

一,在微信开放开台创建应用(https://open.weixin.qq.com/),填写应用下面的应用包名和签名,签名去下载微信里面的工具(https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&lang=zh_CN),安装在手机输入应用包名(前提是手机安装了你自己的应用),填写好信息就去申请微信登录接口(要钱的);

二,微信那边通过了你的申请。现在按照他的方法集成到你应用就可以开始了,不懂的去看官网文档。在点击微信登录了调用以下方法

			final SendAuth.Req req = new SendAuth.Req();
			req.scope = "snsapi_userinfo";
			req.state = "test";
			api.sendReq(req);

授权成功后在WXEntryActivity.java 类里会调用onResp方法,这个时候微信登录就算成功了。这里我遇到了一个问题。登录一个界面,授权一个界面,WXEntryActivity又一个界面,这样看起来很不协调,我就想办法能不能一直在登录界面,让用户感觉只是拉起了一个授权界面。然后我在WXEntryActivity类里写了一个回调方法,回调到登录界面,意思也就是让WXEntryActivity在onResp接受到信息后发消息给登录界面获得到的code.然后马上finish掉WXEntryActivity类。让登录界面去完全后续的请求。这样就让用户感觉全部操作都在同一个界面操作的,无缝链接吧!我是这样做的。先定义一个回调接口

/**
 * 微信授权登录回调函数
 * @author Administrator
 *
 */
public interface  WxCallBack {
	
	public void sendcode(String code,int mode);
}

然后在登录界面实现这个接口

<pre name="code" class="java">public class LoginActivity extends BaseActivity implements OnClickListener,WxCallBack{
........
MyApplication.Login(LoginActivity.this);//在myapplication保存LoginActivity对象,方便WXEntryActivity引用
@Override
	public void sendcode(String code, int mode) {
		// TODO Auto-generated method stub
		Log.i("TGA", "code=="+code+",mode=="+mode);
		getwxtoken(code, 1);
	}
}


 然后就是在WXEntryActivity类onResp方法调用 
((LoginActivity) MyApplication.loginContext).sendcode(code, 1);
finish();

这样写下来还有点小瑕疵,WXEntryActivity类finish的时候会有闪屏的效果。这样体验很不好,然后在配置文件加上这句

android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
这样就完美实现微信登录只在登录界面操作的效果!

有不懂的可以留言

         




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值