android分享 ------ 友盟分享(續)

根據上一篇博客上所講的友盟組件的分享,自己實現了一個通用類:

首先,佈局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:orientation="vertical" >
    
    <RadioGroup 
	    android:id="@+id/fragment_twice_left"
	    android:layout_height="wrap_content"
	    android:paddingTop="@dimen/DIMEN_40PX_DP"
	    android:paddingBottom="@dimen/DIMEN_40PX_DP"
	    android:layout_width="match_parent"
	    android:orientation="horizontal">
	    <RadioButton
        android:id="@+id/sharerb0"
        style="@style/share_style"
        android:text="微信"
        android:layout_marginLeft="@dimen/DIMEN_80PX_DP"
        android:drawableTop="@drawable/wx"
        android:checked="true"/>
        <RadioButton
        android:id="@+id/sharerb1"
         style="@style/share_style"
         android:drawableTop="@drawable/wxfri"
         android:layout_marginLeft="@dimen/DIMEN_60PX_DP"
        android:text="朋友圈"/>
        <RadioButton
        android:id="@+id/sharerb2"
        style="@style/share_style"
        android:drawableTop="@drawable/sina"
        android:layout_marginLeft="@dimen/DIMEN_60PX_DP"
        android:text="新浪"/>    
    	</RadioGroup>
	
</LinearLayout>

下面是分享類,註釋都很清楚:

public class ShareUtil {
	
	private static UMSocialService mController;
	private static AlertDialog myDialog;
	
	/**
	 * performShare(SHARE_MEDIA.WEIXIN);微信
     * performShare(SHARE_MEDIA.WEIXIN_CIRCLE);微信朋友圈
     * performShare(SHARE_MEDIA.SINA);微博
	 * @param context
	 * @param mShareTitle 分享標題
	 * @param mShareContent 分享內容
	 * @param umImage 分享圖片
	 * @param url 分享鏈接
	 * String mShareTitle = "XXXXAPP";
	 * String url = "XXXXAPP";
	 * String mShareContent = "我是分享內容";
	 * UMImage umImage = new UMImage(context, R.drawable.ic_launcher);		
	 */
	public static void alertDialog(final Context context,String mShareTitle,String mShareContent,UMImage umImage,String url) {
		initShare(context, mShareTitle, mShareContent, umImage,url);
		myDialog = new AlertDialog.Builder(context).create();
		myDialog.show();
		myDialog.setCanceledOnTouchOutside(true);
		myDialog.getWindow().setContentView(R.layout.activity_share_pop);
		WindowManager.LayoutParams layoutParams = myDialog.getWindow()
				.getAttributes();
		layoutParams.width = LayoutParams.MATCH_PARENT;
		layoutParams.height = LayoutParams.WRAP_CONTENT;
		myDialog.getWindow().setAttributes(layoutParams);
		myDialog.getWindow().setGravity(Gravity.BOTTOM);
		myDialog.getWindow().setWindowAnimations(R.style.AnimationFade);		
		// 微信
		myDialog.getWindow().findViewById(R.id.sharerb0)
				.setOnClickListener(new View.OnClickListener() {
					public void onClick(View v) {
						myDialog.dismiss();
						performShare(context,SHARE_MEDIA.WEIXIN);
					}
				});
		// 朋友圈
		myDialog.getWindow().findViewById(R.id.sharerb1)
				.setOnClickListener(new View.OnClickListener() {

					public void onClick(View v) {
						myDialog.dismiss();
						performShare(context,SHARE_MEDIA.WEIXIN_CIRCLE);
					}
				});
		// 新浪
		myDialog.getWindow().findViewById(R.id.sharerb2)
				.setOnClickListener(new View.OnClickListener() {
					public void onClick(View v) {
						myDialog.dismiss();
						performShare(context,SHARE_MEDIA.SINA);
					}
				});
	}
	
	/**
	 * 初始化分享
	 * @param context
	 * @param mShareTitle
	 * @param mShareContent
	 * @param umImage
	 */
	private static void initShare(Context context,String mShareTitle,String mShareContent,UMImage umImage,String url){
		mController = UMServiceFactory.getUMSocialService("com.umeng.share");
    	
		// 設置分享內容
		mController.setShareContent(mShareContent);
		//設置應用地址
		mController.setAppWebSite(url);
		
		// 設置分享圖片,參數2爲本地圖片的資源引用
		mController.setShareMedia(umImage);
		
		
		SocializeConfig socializeConfig =  mController.getConfig();
		socializeConfig.closeToast();
	  	
		

		//修改這裏的id和secret
		String appId = "xxxxxxxxxxxxxxxx";
		String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
		// 添加微信平臺
		UMWXHandler wxHandler = new UMWXHandler(context,appId,appSecret);
		wxHandler.addToSocialSDK();
		// 添加微信朋友圈
		UMWXHandler wxCircleHandler = new UMWXHandler(context,appId,appSecret);
		wxCircleHandler.setToCircle(true);
		wxCircleHandler.addToSocialSDK();
		
		
		// 設置微信好友分享內容
        WeiXinShareContent weixinContent = new WeiXinShareContent();
        // 設置分享文字
        weixinContent.setShareContent(mShareContent);
        // 設置title
        weixinContent.setTitle(mShareTitle);
        // 設置分享內容跳轉URL
        weixinContent.setTargetUrl(url);
        // 設置分享圖片
        weixinContent.setShareImage(umImage);
        mController.setShareMedia(weixinContent);
 
        // 設置微信朋友圈分享內容
        CircleShareContent circleMedia = new CircleShareContent();
        circleMedia.setShareContent(mShareContent);
        // 設置朋友圈title
        //客戶的需求分享到朋友圈的時候標題用內容
        circleMedia.setTitle(mShareContent);
        circleMedia.setShareImage(umImage);
        circleMedia.setTargetUrl(url);
        mController.setShareMedia(circleMedia);
        
        // 新浪微博
 		SinaShareContent sinaContent = new SinaShareContent();
 		sinaContent.setShareContent(mShareContent + "[url="+url+"]"+url+"[/url]");
 		sinaContent.setTitle(mShareTitle);
 		sinaContent.setTargetUrl(url);
 		sinaContent.setShareImage(umImage);
 		mController.setShareMedia(sinaContent);
 		
	}
	
    /**
     * 分享
     * performShare(SHARE_MEDIA.WEIXIN);微信
     * performShare(SHARE_MEDIA.WEIXIN_CIRCLE);微信朋友圈
     * performShare(SHARE_MEDIA.SINA);微博
     * @param context
     * @param platform
     */
    private static void performShare(final Context context,SHARE_MEDIA platform) {
    	mController.postShare(context, platform, new SnsPostListener() {

            @Override
            public void onStart() {

            }

            @Override
            public void onComplete(SHARE_MEDIA platform, int eCode, SocializeEntity entity) {
                String showText = "";//platform.toString();
                if (eCode == StatusCode.ST_CODE_SUCCESSED) {
                    showText += "分享成功";
                } else {
                    showText += "分享失敗";
                }
               Toast.makeText(context, showText,Toast.LENGTH_LONG).show();
            }
        });
    }
	
}

最後,調用

                        String mShareTitle = "XXXXAPP"; 
			String url ="http://XXXXXXXXX" ;
			String mShareContent = "分享內容"; 
			UMImage umImage = new UMImage(context, R.drawable.ic_launcher); 
			ShareUtil.alertDialog(context, mShareTitle, mShareContent, umImage, url);












發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章