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

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

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

3分钟,实现友盟第三方分享与登陆-- -一键分享_第1张图片   3分钟,实现友盟第三方分享与登陆-- -一键分享_第2张图片

3分钟,实现友盟第三方分享与登陆-- -一键分享_第3张图片3分钟,实现友盟第三方分享与登陆-- -一键分享_第4张图片

(基本上Demo实现的功能)


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

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

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


3分钟,实现友盟第三方分享与登陆-- -一键分享_第5张图片



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

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

  • 进入下载SDK页面(点击链接),勾选自己需要的功能进行下载
3分钟,实现友盟第三方分享与登陆-- -一键分享_第6张图片
  • 配置AndroidManifest.xml(包括设置权限、友盟AppKey、分享的相关组件)
这里AndoirMannifest.xml配置我就不贴了,这里可以参考我上传的DEMO
  • 复制指定平台的libs和res到项目中
因为之前我们下载的SDK,里面用到的lib以及一些资源文件,是需要我们自己拷贝到我们的工程里面去的。这里目录在我们下载的SDK压缩包中main文件下的libs、res文件夹,直接拷贝覆盖我们的工程即可。
3分钟,实现友盟第三方分享与登陆-- -一键分享_第7张图片



因为作者是将第三方分享与登陆分别写在两个工具类中,现在我们先看一下第三方分享的关键代码:
/*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空间SSO
		mController.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);

		//QQ
		QQShareContent 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();
	}

	//QQzone
	private void addQQZone(Context context) {
		// QQZone
		QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(
				(Activity) context, "100424468",
				"c7394704798a158208a74ab60104f0ba");
		qZoneSsoHandler.addToSocialSDK();


	}

  • 配置不同平台下的分享模块
// msg & email
	private void addmsg() {
		SmsHandler smsHandler = new SmsHandler();
		smsHandler.addToSocialSDK();
	}

	private void addemail() {
		EmailHandler emailHandler = new EmailHandler();
		emailHandler.addToSocialSDK();
	}

	// 易信
	private void addYXPlatform(Context context) {
		// 添加易信平台 易信开放平台申请到的app id
		UMYXHandler yixinHandler = new UMYXHandler(context,
				"yxc0614e80c9304c11b0391514d09f13bf");
		// 关闭分享时的等待Dialog
		yixinHandler.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分钟,实现友盟第三方分享与登陆-- -一键分享)