友盟第三方登陆,及分享,使用工具集成。
2016-04-05 16:13
429 查看
做了很多中方式登陆,分享,个人认为下面这一种最为简单实用;
首先,使用SDKIntegration友盟集成配置工具,自动会导入jar包,配置权限到你的项目中,需要一个APPkey 。这里我找了一个APPkey为;
56e8cdc267e58ea977000286
配置成功之后,刷新一下项目,会自动生成一个清单文件,jar包等,如果没有添加jar包,要手动添加。
在自动生成的配置信息中还要,加一下权限,下面我只做了QQ和微信的第三方登陆。
<!-- 配置QQ及QQ空间 -->
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent你的QQ互联APPID" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:screenOrientation="portrait" >
</activity>
<!-- 配置微信 -->
<activity
android:name="com.umeng.soexample.wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- 微信的回调 -->
<activity
android:name="com.example.ym.wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
下面是代码部分
在要实现第三方登录的Activity中
添加QQ和QQ空间的支持权限
mController = UMServiceFactory.getUMSocialService("com.umeng.login");
String appId = "100424468";
String appKey = "c7394704798a158208a74ab60104f0bas";
// 添加QQ支持, 并且设置QQ分享内容的target url
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(MainActivity.this,
appId, appKey);
qqSsoHandler.setTargetUrl("http://www.umeng.com");
qqSsoHandler.addToSocialSDK();
// 添加QZone平台
QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(
MainActivity.this, appId, appKey);
qZoneSsoHandler.addToSocialSDK();
添加支持微信的配置权限;
UMWXHandler wxHandler = new UMWXHandler(MainActivity.this, appId,
appKey);
wxHandler.addToSocialSDK();
然后在实现监听登陆方法中;
private void login(SHARE_MEDIA qq) {
mController.doOauthVerify(MainActivity.this, qq, new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this, "开始授权", Toast.LENGTH_SHORT)
.show();
}
@Override
public void onError(SocializeException e, SHARE_MEDIA platform) {
}
@Override
public void onComplete(Bundle value, SHARE_MEDIA platform) {
String uid = value.getString("uid");
// if (!TextUtils.isEmpty(uid)) {
// getUserInfo(platform);
// } else {
// Toast.makeText(getActivity(), "授权失败...", Toast.LENGTH_SHORT)
// .show();
// }
}
@Override
public void onCancel(SHARE_MEDIA platform) {
4000
Toast.makeText(MainActivity.this, "取消授权", Toast.LENGTH_SHORT)
.show();
}
});
}
此方法为回调方法
public boolean onCreateOptionsMenu(Menu menu) {
MainActivity.this.getMenuInflater().inflate(R.menu.main, menu);
return true;
}
此方法中的参数:哪个方法调用了此方法,传入的参数就为SHARE_MEDIA.QQ 就是QQ登陆 SHARE_MEDIA.weixin 就是微信登陆
还有,就是要做分享了,特别的简单的实现,调用openShare类都是集成好的
mController.setShareContent("dadad"); 设置分享的内容
mController.setShareImage(new UMImage(MainActivity.this,设置分享的图片
R.drawable.ic_launcher));
mController.openShare(MainActivity.this, false);
相关文章推荐
- 社交網絡一
- Leetcode 90. Subsets II
- 华为USG防火墙双机热备(业务口工作在三层上下行连接交换机)
- js post x-www-form-urlencoded、form-url数据,Nodejs获取x-www-form-urlencoded数据
- ViewPager 简单分析
- Java 集合
- surfaceView和View区别
- 测试
- ubuntu 14.4常见命令
- Android根据文件名(String类型)去查找R文件中的对应id(int类型)
- fragment 重影问题,原来是布局id相同导致的
- 增加 cookie 安全性添加HttpOnly和secure属性
- git 恢复某个文件到指定版本
- iOS开发-NSURLCache(缓存)
- YY项目之帧动画(二)
- 【Spring MVC拦截器+logback日志+自定义注解】实现用户鉴权登陆和访问日志记录
- 【BZOJ1191】[HNOI2006]超级英雄Hero【二分图匹配】
- CSS学习笔记(二)选择器
- 工具类:快速创建单例
- Wdatepicker日期控件的使用指南