使用Sharesdk实现第三方平台登录(qq,新浪微博)
首先到sharesdk开放píng台下载demo ,以下要用到的文件来自于 simple里面
第一步:导入官方的jar包
第二步:添加ShareSDK.xml文件并修改相关píng台key
第三步:AndroidManifest.xml文件中添加
<activity
android:name="cn.sharesdk.framework.ShareSDKUIShell"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" >
<!--
AuthorizeAdapter表示一个继承自cn.sharesdk.framework.authorize.AuthorizeAdapter
的类,这个类可以监听到页面的生命周期,也可以获取授权页面的各种UI控件。
开发者可以通过继承AuthorizeAdapter,重写其方法,并获取各种UI来自定义这个页面的行为。
-->
<meta-data
android:name="AuthorizeAdapter"
android:value="cn.sharesdk.demo.MyAdapter" />
<!--
QZoneWebShareAdapter表示一个继承自cn.sharesdk.tencent.qzone.QZoneWebShareAdapter
的类,这个类可以监听到页面的生命周期,也可以获QQ空间网页分享权页面的各种UI控件。
开发者可以通过继承QZoneWebShareAdapter,重写其方法,并获取各种UI来自定义这个页面的行为。
-->
<meta-data
android:name="QZoneWebShareAdapter"
android:value="cn.sharesdk.demo.MyQZoneWebShareAdapter" />
<!--
Dropbox的SSO功能需要在此chǔ添加一个对ACTION_VIEW事件的过滤器,其中的scheme是
“db-”前缀再开发者应用的加上appKey。如果此过滤器不设置,则不能完成SSO功能授权
-->
<intent-filter>
<data android:scheme="db-7janx53ilz11gbs" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
第四步:【qq不需要】如果是新浪píng台则需添加一些图片和文字
第五步:activity中调用
oncreate中初始化:ShareSDK.initSDK(this);
qq点击事件:Platform plat_qq = ShareSDK.getPlatform(LoginActivity.this,
QZone.NAME);
plat_qq.setPlatformActionListener(new PlatformActionListener() {
@Override
public void onError(Platform plat, int action, Throwable arg2) {
System.out.println("action" + action);
Message msg = new Message();
msg.what = 1;
msg.obj = plat;
handler.sendMessage(msg);
}
@Override
public void onComplete(Platform arg0, int action,
HashMap<String, Object> res) {
System.out.println("action" + action);
System.out.println(res);
// result(res);// chǔ理结果
Message msg = new Message();
msg.what = 0;
msg.obj = res;
handler.sendMessage(msg);
}
@Override
public void onCancel(Platform plat, int action) {
Message msg = new Message();
msg.what = 2;
msg.obj = plat;
handler.sendMessage(msg);
}
});
plat_qq.showUser(null);
新浪点击事件:
Platform plat_sina = ShareSDK.getPlatform(LoginActivity.this,
SinaWeibo.NAME);
plat_sina.setPlatformActionListener(new PlatformActionListener() {
@Override
public void onError(Platform plat, int action, Throwable arg2) {
System.out.println("action" + action);
Message msg = new Message();
msg.arg1 = 2;
msg.arg2 = action;
msg.obj = plat;
handler.sendMessage(msg);
}
@Override
public void onComplete(Platform arg0, int arg1,
HashMap<String, Object> arg2) {
System.out.println(arg2);
result_sian(arg2);
}
@Override
public void onCancel(Platform plat, int action) {
Message msg = new Message();
msg.arg1 = 3;
msg.arg2 = action;
msg.obj = plat;
handler.sendMessage(msg);
}
});
plat_sina.showUser(null);
剩下的回调chǔ理自己写吧。
这样就可以获取到用户信息了
《转载》
最新文章
- NFS 文件系统
- js 数组删去重复的加上没有的元素
- Distribution2:Distribution Writer
- LeetCode Verify Preorder Serialization of a Binary Tree
- 解决TableView / ScrollView上的Menu问题(1滑出View区域还可点击2导致点击menu后View不能滑动)
- Qt之高级网络操作(HTTP/FTP快速上手)Qt之QHttpPart和QHttpMultiPart
- 教程-经典Delphi教程网
- Java 的简单了解
- 《Javascript高级程序设计》读书笔记之bind函数详解
- Win10微软帐户切换不回Administrator本地帐户的解决方法--(转,虽转但亲测有效)
- 输入法searchLookUpEditd的使用
- 软件测试人员在工作中如何运用Linux
- 顶尖 API 文档管理工具 (Yapi)
- QQ聊天框变成方框口口口口的解决办法
- fsync和fdatasync
- curl重写php file_get_contents
- Navicat创建视图与美化SQL
- 【Algorithm】自顶向下的归并排序
- Golang 新手可能会踩的 50 个坑
- Spring学习笔记之Testing
热门文章
- gendiff - 致力于创建无错的 diff 文件的工具
- Freemarker入门小案例(生成静态网页的其中一种方式)
- python基础面试题整理---从零开始 每天十题(02)
- PAT (Basic Level) Practise (中文)-1029. 旧键盘(20)
- Codeforces 1012A Photo of The Sky
- 题解 P1189 SEARCH
- 企业版https
- ios UITableViewCell重用问题
- (52)zabbix_sender提交item数据
- mysql8忘记root密码修改密码(mac)