package com.todayinfo.utils; import android.app.Activity; import android.content.Context; import android.widget.Toast; import com.jinghua.todayinformation.R; import com.umeng.socialize.bean.SHARE_MEDIA; import com.umeng.socialize.bean.SocializeEntity; import com.umeng.socialize.bean.StatusCode; import com.umeng.socialize.controller.UMServiceFactory; import com.umeng.socialize.controller.UMSocialService; import com.umeng.socialize.controller.listener.SocializeListeners.SnsPostListener; import com.umeng.socialize.media.QQShareContent; import com.umeng.socialize.media.QZoneShareContent; import com.umeng.socialize.media.SinaShareContent; import com.umeng.socialize.media.TencentWbShareContent; import com.umeng.socialize.media.UMImage; import com.umeng.socialize.sso.QZoneSsoHandler; import com.umeng.socialize.sso.UMQQSsoHandler; import com.umeng.socialize.weixin.media.CircleShareContent; import com.umeng.socialize.weixin.media.WeiXinShareContent; /** * 友盟分享工具类 * * @author zhou.ni 2015年5月13日 */ public class ShareUtils { private Context mContext; // 整个平台的Controller,负责管理整个SDK的配置、操作等处理 private final UMSocialService mController = UMServiceFactory.getUMSocialService(Contacts.DESCRIPTOR); public ShareUtils(Context context) { this.mContext = context; // 配置需要分享的相关平台 configPlatforms(); mController.getConfig().setPlatforms(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE); } /** * 获取分享控制对象 * @return */ public UMSocialService getmController() { return mController; } /** * 设置分享内容 */ public void setShareProgram(String params,String tile, String context){ String shareTitle = tile; String shareContext = context; String shareUrl= createAppShareUrl(); UMImage urlImage = new UMImage(mContext, R.drawable.ic_launcher); //微信分享 WeiXinShareContent weixinContent = new WeiXinShareContent(); weixinContent.setTitle(shareTitle); weixinContent.setShareContent(shareContext); weixinContent.setTargetUrl(shareUrl); weixinContent.setShareMedia(urlImage); mController.setShareMedia(weixinContent); // 设置朋友圈分享的内容 CircleShareContent circleMedia = new CircleShareContent(); circleMedia.setTitle(shareTitle); circleMedia.setShareContent(shareContext); circleMedia.setTargetUrl(shareUrl); circleMedia.setShareMedia(urlImage); mController.setShareMedia(circleMedia); // 设置QQ空间分享内容 QZoneShareContent qzone = new QZoneShareContent(); qzone.setTitle(shareTitle); qzone.setShareContent(shareContext); qzone.setTargetUrl(shareUrl); qzone.setShareMedia(urlImage); mController.setShareMedia(qzone); //QQ分享 QQShareContent qqShareContent = new QQShareContent(); qqShareContent.setTitle(shareTitle); qqShareContent.setShareContent(shareContext); qqShareContent.setTargetUrl(shareUrl); qqShareContent.setShareMedia(urlImage); mController.setShareMedia(qqShareContent); //腾讯微博 TencentWbShareContent tencent = new TencentWbShareContent(); tencent.setTitle(shareTitle); tencent.setShareContent(shareContext); tencent.setTargetUrl(shareUrl); tencent.setShareMedia(urlImage); mController.setShareMedia(tencent); //新浪微博 SinaShareContent sinaContent = new SinaShareContent(); sinaContent.setTitle(shareTitle); sinaContent.setShareContent(shareContext); sinaContent.setTargetUrl(shareUrl); sinaContent.setShareMedia(urlImage); mController.setShareMedia(sinaContent); } /** * 配置分享平台参数 */ private void configPlatforms() { // 设置新浪SSO handler // mController.getConfig().setSsoHandler(new SinaSsoHandler()); // 添加腾讯微博SSO授权 // mController.getConfig().setSsoHandler(new TencentWBSsoHandler()); // 添加QQ、QZone平台 addQQQZonePlatform(); // 添加微信、微信朋友圈平台 addWXPlatform(); } /** * * @功能描述 : 添加QQ平台支持 QQ分享的内容, 包含四种类型, 即单纯的文字、图片、音乐、视频. 参数说明 : title, summary, * image url中必须至少设置一个, targetUrl必须设置,网页地址必须以"http://"开头 . title : * 要分享标题 summary : 要分享的文字概述 image url : 图片地址 [以上三个参数至少填写一个] targetUrl * : 用户点击该分享时跳转到的目标地址 [必填] ( 若不填写则默认设置为友盟主页 ) * * 参数1为当前Activity, * 参数2为开发者在QQ互联申请的APP ID, * 参数3为开发者在QQ互联申请的APP kEY. * @return * */ private void addQQQZonePlatform() { String appId = Contacts.QQ_APP_ID; String appSecret = Contacts.QQ_APP_SECRET; // 添加QQ支持, 并且设置QQ分享内容的target url UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler((Activity) mContext, appId, appSecret); qqSsoHandler.setTargetUrl("http://www.woyouwaimai.com/d"); qqSsoHandler.addToSocialSDK(); // 添加QZone平台 QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler((Activity) mContext, appId, appSecret); qZoneSsoHandler.addToSocialSDK(); } /** * @功能描述 : 添加微信平台分享 * * @return */ private void addWXPlatform() { // 注意:在微信授权的时候,必须传递appSecret // wx967daebe835fbeac是你在微信开发平台注册应用的AppID, 这里需要替换成你注册的AppID // String appId = Contacts.APP_ID; // String appSecret = Contacts.APP_SECRET; // 添加微信平台 // UMWXHandler wxHandler = new UMWXHandler(mContext, appId, appSecret); // wxHandler.addToSocialSDK(); // wxHandler.setRefreshTokenAvailable(false); // // // 支持微信朋友圈 // UMWXHandler wxCircleHandler = new UMWXHandler(mContext, appId, appSecret); // wxCircleHandler.setToCircle(true); // wxCircleHandler.addToSocialSDK(); } /** * 直接分享,底层分享接口。如果分享的平台是新浪、腾讯微博、豆瓣、人人,则直接分享,无任何界面弹出; 其它平台分别启动客户端分享</br> */ public void directShare(SHARE_MEDIA platform) { mController.directShare(mContext, platform, new SnsPostListener() { @Override public void onStart() { } @Override public void onComplete(SHARE_MEDIA platform, int eCode, SocializeEntity entity) { String showText = "分享成功"; if (eCode != StatusCode.ST_CODE_SUCCESSED) { showText = "分享失败 [" + eCode + "]"; } Toast.makeText(mContext, showText, Toast.LENGTH_SHORT).show(); } }); } public String createAppShareUrl(){ String url = "http://android.myapp.com/myapp/detail.htm?apkName=com.jinghua.todayinformation"; return url; } }