在Fragment中实现QQ第三方登录
来源:互联网 发布:大数据的定义 编辑:程序博客网 时间:2024/05/29 12:31
我们在实现QQ第三方登录时,通常会在Activity中,在网上很多的博客中都会有实现的方法,但是在Fragment实现第三方登录时会出现一些问题。
今天,我来与大家分享一下在Fragment中实现QQ第三方登录的方法:
在fragment中定义一个button按钮,点击按钮来实现第三方的登录;
public class LeftFragment extends Fragment { private View inflate; private ImageView login_qq; private static final String TAG = "MainActivity"; private static final String APP_ID = "";//官方获取的APPID private Tencent mTencent; private MyBaseUIlister mIUiListener; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { inflate = View.inflate(getContext(), R.layout.activity_leftfragment, null); mTencent = Tencent.createInstance(APP_ID,getActivity()); return inflate; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); login_qq = (ImageView) inflate.findViewById(R.id.login_qq); MainActivity mainActivity = (MainActivity) getActivity(); title_img = (ImageView) mainActivity.findViewById(R.id.title_img); MyBaseAdapter myBaseAdapter = new MyBaseAdapter(list, getContext()); login_qq.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mIUiListener = new MyBaseUIlister(getActivity(),title_img); mTencent.login(getActivity(),"all", mIUiListener); } }); }}
创建一个实现IUiListener的类,方便我们来调用:
package com.example.topnews;import android.content.Context;import android.util.Log;import android.widget.ImageView;import android.widget.Toast;import com.nostra13.universalimageloader.core.ImageLoader;import com.tencent.connect.UserInfo;import com.tencent.connect.auth.QQToken;import com.tencent.tauth.IUiListener;import com.tencent.tauth.Tencent;import com.tencent.tauth.UiError;import org.json.JSONException;import org.json.JSONObject;public class MyBaseUIlister implements IUiListener { private Tencent mTencent; private Context context; private UserInfo mUserInfo; private String str; ImageView image; public MyBaseUIlister(Context context) { this.context = context; } public MyBaseUIlister(Context context, ImageView image) { this.context = context; this.image = image; } @Override public void onComplete(Object response) { mTencent = Tencent.createInstance("1105602574", context); Toast.makeText(context, "授权成功", Toast.LENGTH_SHORT).show(); Log.e("=======", "response:" + response); JSONObject obj = (JSONObject) response; try { String openID = obj.getString("openid"); String accessToken = obj.getString("access_token"); String expires = obj.getString("expires_in"); mTencent.setOpenId(openID); mTencent.setAccessToken(accessToken, expires); QQToken qqToken = mTencent.getQQToken(); mUserInfo = new UserInfo(context, qqToken); mUserInfo.getUserInfo(new IUiListener() { @Override public void onComplete(Object response) { Log.e("======", "登录成功" + response.toString()); if (response == null) { return; } try { JSONObject jo = (JSONObject) response; String img = jo.getString("figureurl_qq_1"); ImageLoader.getInstance().displayImage(img, image); } catch (Exception e) { e.printStackTrace(); } } @Override public void onError(UiError uiError) { Log.e("======", "登录失败" + uiError.toString()); } @Override public void onCancel() { Log.e("====", "登录取消"); } }); } catch (JSONException e) { e.printStackTrace(); } } @Override public void onError(UiError uiError) { } @Override public void onCancel() { }}
在MainActivity中实现回调的方法:
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mIUiListener = new MyBaseUIlistener(this);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == Constants.REQUEST_LOGIN){ Tencent.onActivityResultData(requestCode,resultCode,data,mIUiListener); } super.onActivityResult(requestCode, resultCode, data);}
阅读全文
0 0
- 在Fragment中实现QQ第三方登录
- 在Fragment中使用QQ第三方登录时回调方法的问题
- QQ实现第三方登录
- 实现QQ第三方登录
- QQ第三方登录实现
- QQ第三方登陆(在Fragment中运行)
- thinkPHP5项目中实现QQ第三方登录功能
- Android 实现QQ第三方登录
- 第三方QQ账号登录的实现
- Android 实现QQ第三方登录
- Android 实现QQ第三方登录
- Android实现QQ第三方登录
- iOS QQ第三方登录实现
- iOS开发 实现QQ第三方登录
- Android实现QQ第三方登录
- 实现QQ第三方登录、网站接入
- js 实现网站 第三方 qq 登录
- php实现qq第三方登录
- URL encode
- vps云服务器搭建内网穿透,frp,nginx,apache,tomcat反向代理整合,云服务器选择
- 关于英语学习和字幕的那点事儿
- Python+OpenCV学习(17)---摄像机标定
- Hermite多项式
- 在Fragment中实现QQ第三方登录
- 虽然微不足道但是很有用的JAVA基础—注释与文档标记
- 第八课 C常量
- mysql语句中的date日期处理
- 二级C考试的重要知识点
- THINKING IN JAVA中吸血鬼数字题目的答案,稍作修改
- iOS github账号添加 add an ssh key
- faster rcnn配置成功
- Java终止线程的四种方法