3分钟,实现友盟第三方分享与登陆-- -一键分享

来源:互联网 发布:牛仔衬衫女淘宝 编辑:程序博客网 时间:2024/05/16 05:04

博客是作者近期实现第三方登陆、分享时的记录,采用的第三方平台是友盟社会化组件。

希望可以通过这个博客让读者快速集成好、并且实现第三方登陆、分享功能。

   


(基本上Demo实现的功能)


众所周知,实现社交化分享登陆,很多平台都支持,对于集成社会化功能,各个平台的帮助文档都比较详细,这里作者就不对各个平台有什么优缺点做比较了,作者也只是其中随机选择了友盟这个平台。

前提,为应用做准备,使用过第三方平台SDK的同志都知道,我们要使用第三方平台SDK的时候,都必须要在第三方平台官网申请添加新应用并且获得该应用的AppKey。在这里,申请大致的流程为:

  • –登陆友盟官网,在我的产品页面添加新应用,然后获取到Appkey






获取到APPKey之后,我们下面就可以直接实现第三方分享与登陆了!

友盟社会化SDK集成流程,在这里我们先讲述友盟社会化组件中的分享功能。大致流程分为:

  • 进入下载SDK页面(点击链接),勾选自己需要的功能进行下载

  • 配置AndroidManifest.xml(包括设置权限、友盟AppKey、分享的相关组件)
这里AndoirMannifest.xml配置我就不贴了,这里可以参考我上传的DEMO
  • 复制指定平台的libs和res到项目中
因为之前我们下载的SDK,里面用到的lib以及一些资源文件,是需要我们自己拷贝到我们的工程里面去的。这里目录在我们下载的SDK压缩包中main文件下的libs、res文件夹,直接拷贝覆盖我们的工程即可。




因为作者是将第三方分享与登陆分别写在两个工具类中,现在我们先看一下第三方分享的关键代码:
/*ShareContentUtils.java*/
  • 获取友盟服务
mController = UMServiceFactory.getUMSocialService("com.umeng.share");
  • 设置不同平台下的分享内容:
/** * 设置不同平台下分享的内容 * @param title 分享的内容标题 * @param content 分享的内容 * @param turnUrl 分享跳转的url * @param imgUrl 分享加载图片的url */private void setShareContent(Context context,String title,String content, String turnUrl,String imgUrl){//本地图片//UMImage image = new UMImage(MainActivity.this,BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher));//网络图片UMImage urlImage = new UMImage(context,imgUrl);// 配置QQ空间SSOmController.getConfig().setSsoHandler(new SinaSsoHandler());mController.getConfig().setSsoHandler(new TencentWBSsoHandler());QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler((Activity) context, "100424468","c7394704798a158208a74ab60104f0ba");qZoneSsoHandler.addToSocialSDK();mController.setShareContent(content);//微信WeiXinShareContent weixinContent = new WeiXinShareContent();weixinContent.setShareContent(content);weixinContent.setTitle(title);weixinContent.setTargetUrl(turnUrl);weixinContent.setShareMedia(urlImage);mController.setShareMedia(weixinContent);// 微信朋友圈CircleShareContent circleMedia = new CircleShareContent();circleMedia.setShareContent(content);circleMedia.setTitle(title);circleMedia.setShareImage(urlImage);circleMedia.setTargetUrl(turnUrl);mController.setShareMedia(circleMedia);// 设置renren分享内容RenrenShareContent renrenShareContent = new RenrenShareContent();renrenShareContent.setShareContent(content);renrenShareContent.setTitle(title);renrenShareContent.setShareImage(urlImage);renrenShareContent.setAppWebSite(turnUrl);//跳转链接mController.setShareMedia(renrenShareContent);// QQ空间QZoneShareContent qzone = new QZoneShareContent();qzone.setShareContent(content);qzone.setTargetUrl(turnUrl);qzone.setTitle(title);qzone.setShareImage(urlImage);mController.setShareMedia(qzone);//QQQQShareContent qqShareContent = new QQShareContent();qqShareContent.setShareContent(content);qqShareContent.setTitle(title);qqShareContent.setShareImage(urlImage);qqShareContent.setTargetUrl(turnUrl);mController.setShareMedia(qqShareContent);// 邮件MailShareContent mail = new MailShareContent(urlImage);mail.setTitle(title);mail.setShareContent(content);// 设置tencent分享内容mController.setShareMedia(mail);// 短信SmsShareContent sms = new SmsShareContent();sms.setShareContent(content);sms.setShareImage(urlImage);mController.setShareMedia(sms);//新浪SinaShareContent sinaContent = new SinaShareContent(urlImage);sinaContent.setShareContent(content);mController.setShareMedia(sinaContent);}/** * 配置不同平台的分享 *  * @param content *            分享内容 * @param imgURL *            带图片的url */// 微信private void addWXPlatform(Context context) {// 这里需要在微信公众号平台申请String appID = "wx3693b037a24aa153";String appSecret = "d457c475a277117f43f0463505fac4b7";// 添加微信平台UMWXHandler wxHandler = new UMWXHandler(context, appID,appSecret);wxHandler.addToSocialSDK();// 支持微信朋友圈UMWXHandler wxCircleHandler = new UMWXHandler(context, appID,appSecret);wxCircleHandler.setToCircle(true);wxCircleHandler.addToSocialSDK();}// QQ private void addQQPlatform(Context context) {UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler((Activity) context,"100424468", "c7394704798a158208a74ab60104f0ba");qqSsoHandler.addToSocialSDK();}//QQzoneprivate void addQQZone(Context context) {// QQZoneQZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler((Activity) context, "100424468","c7394704798a158208a74ab60104f0ba");qZoneSsoHandler.addToSocialSDK();}

  • 配置不同平台下的分享模块
// msg & emailprivate void addmsg() {SmsHandler smsHandler = new SmsHandler();smsHandler.addToSocialSDK();}private void addemail() {EmailHandler emailHandler = new EmailHandler();emailHandler.addToSocialSDK();}// 易信private void addYXPlatform(Context context) {// 添加易信平台 易信开放平台申请到的app idUMYXHandler yixinHandler = new UMYXHandler(context,"yxc0614e80c9304c11b0391514d09f13bf");// 关闭分享时的等待DialogyixinHandler.enableLoadingDialog(false);// 把易信添加到SDK中yixinHandler.addToSocialSDK();// 易信朋友圈平台UMYXHandler yxCircleHandler = new UMYXHandler(context,"yxc0614e80c9304c11b0391514d09f13bf");yxCircleHandler.setToCircle(true);yxCircleHandler.addToSocialSDK();}//人人网private void addRenRenPlatform(Context context){//app id 要申请RenrenSsoHandler renrenSsoHandler = new RenrenSsoHandler(context, "201874","28401c0964f04a72a14c812d6132fcef","3bf66e42db1e4fa9829b955cc300b737");mController.getConfig().setSsoHandler(renrenSsoHandler);renrenSsoHandler.addToSocialSDK();}//新浪 腾讯 人人网SSO授权private void addSSOPlatform(){// 添加新浪sso授权mController.getConfig().setSsoHandler(new SinaSsoHandler());// 添加腾讯微博SSO授权mController.getConfig().setSsoHandler(new TencentWBSsoHandler());}

今晚暂时就在这里,后期再讲述如何再各个平台申请对应的APPid以及第三方登陆实现,希望对即将要实现这个社会化功能的读者有帮助。

版权声明:本文为博主原创文章,未经博主允许不得转载。



3 0
原创粉丝点击