关闭

Umeng微信、朋友圈分享

标签: sdk微信友盟应用
3788人阅读 评论(0) 收藏 举报
分类:

1.注册友盟账号,添加新应用,获取APPKEY.


2.下载最新的分享sdk   http://dev.umeng.com/social/android/quick-integration


3.将main和platforms里面的jar包和资源文件 放入新建    的程序中。


放好后如下图:


4.在清单文件AndroidMainfest.xml中添加如下代码:

    <!-- ###################声明SDK使用的相关权限###################### -->
    <!-- 检测网络状态 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 获取mac地址作为用户的备用唯一标识 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!-- 获取用户手机的IMEI,用来唯一的标识用户 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!-- 缓存资源优先存入SDcard -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 允许应用程序联网,以便向我们的服务器端发送数据 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- QQ、QQ空间所需权限 -->
    <uses-permission android:name="android.permission.GET_TASKS" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.wxshare.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

        <!-- ###################注册SDK使用的Activity###################### -->
        <!-- 分享编辑页 -->
        <activity
            android:name="com.umeng.socialize.view.ShareActivity"
            android:configChanges="orientation|keyboard"
            android:launchMode="singleTask"
            android:noHistory="true"
            android:theme="@style/Theme.UMDialog"
            android:windowSoftInputMode="stateVisible|adjustResize" >
        </activity>

        <!-- ############ QQ空间和QQ SSO授权的Activity注册 ############ -->
        <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" />
                <!-- 100424468,如果你使用的公用账号,则不需要修改;否则修改成你在QQ开放平台申请的 APP ID -->
                <data android:scheme="tencent100424468" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" >
        </activity>

        <!-- ###################添加UmengAppkey###################### -->
        <meta-data
            android:name="UMENG_APPKEY"
            android:value="你的友盟appkey" >
        </meta-data>

    </application>


5.在mainActivity的oncreate中添加如下方法

	private void umengShareInit() {
		//0.微信分享步骤
		//1.首先在您的Activity中添加如下成员变量
		mController = UMServiceFactory.getUMSocialService("com.umeng.share");
		//2.wx967daebe835fbeac是你在微信开发平台注册应用的AppID, 这里需要替换成你注册的AppID
		appId = "<span style="font-family: Arial, Helvetica, sans-serif;">微信开发平台注册应用的AppID</span>";
		appSecret = "微信开发平台的appSecret";

		//3.添加支持微信平台
		UMWXHandler wxHandler = new UMWXHandler(this,appId,appSecret);
		wxHandler.addToSocialSDK();

		//3.1支持微信朋友圈
		UMWXHandler wxCircleHandler = new UMWXHandler(this,appId,appSecret);
		wxCircleHandler.setToCircle(true);
		wxCircleHandler.addToSocialSDK();
	}

6.友盟分享的UI界面可以用友盟自带的也可以自己布局。

 

友盟布局:

	/**
	 * 友盟自定义UI
	 */
	private void showUmengUI() {
		//4.移除无用的分享图标
		mController.getConfig().removePlatform( SHARE_MEDIA.RENREN, SHARE_MEDIA.QZONE,SHARE_MEDIA.QQ,SHARE_MEDIA.SINA,SHARE_MEDIA.TENCENT);
		mController.openShare(this, false);

		//5.设置微信好友分享内容
		WeiXinShareContent weixinContent = new WeiXinShareContent();
		//设置分享文字
		weixinContent.setShareContent("如果你是创业者,那来这里。。。;如果你是投资者,那来这里。。。");
		//设置title
		weixinContent.setTitle("测试标题");
		//设置分享内容跳转URL
		weixinContent.setTargetUrl("https://www.baidu.com/");
		//设置分享图片
		UMImage localImage=new UMImage(this,R.drawable.ic_launcher);
		weixinContent.setShareImage(localImage);
		//6.分享
		mController.setShareMedia(weixinContent);


		//5.1设置微信朋友圈分享内容
		CircleShareContent circleMedia = new CircleShareContent();
		circleMedia.setShareContent("如果你是创业者,那来这里。。。;如果你是投资者,那来这里。。。");
		//设置朋友圈title
		circleMedia.setTitle("测试标题");
		circleMedia.setShareImage(localImage);
		circleMedia.setTargetUrl("https://www.baidu.com/");
		//6.分享
		mController.setShareMedia(circleMedia);
	}


自定义:

	/**
	 * 显示您的自定义界面,当用户点击一个平台时,直接调用directShare或者postShare来分享.
	 */
	protected void showCustomUI(final boolean isDirectShare) {
		View pw_share = LayoutInflater.from(this).inflate(R.layout.pw_share, null);
		
		ImageView iv_wxchat = (ImageView) pw_share.findViewById(R.id.iv_wxchat);
		ImageView iv_wxcircle = (ImageView) pw_share.findViewById(R.id.iv_wxcircle);

		iv_wxchat.setOnClickListener(this);
		iv_wxcircle.setOnClickListener(this);
		
		new AlertDialog.Builder(this).setView(pw_share).create().show();
	}

7. 设置分享监听器,可以监听用户分享状态

		/**
		 * 分享监听器
		 */
		mShareListener = new SnsPostListener() {

			@Override
			public void onStart() {
				Log.i("启动分享", "----------------------");
			}

			@Override
			public void onComplete(SHARE_MEDIA platform, int stCode,
					SocializeEntity entity) {
				if (stCode == 200) {
					Log.i("分享成功", "----------------------");
				} else {
					Log.i("分享失败", "----------------------");
				}
			}
		};

8.自定义界面用户点击分享到微信或朋友圈相应的操作:

		case R.id.iv_wxchat:
			// 获取用户点击的平台
			platform =SHARE_MEDIA.WEIXIN;
			if (isDirectShare) {
				// 调用直接分享
				//设置微信好友分享内容
				WeiXinShareContent weixinContent = new WeiXinShareContent();
				//设置分享文字
				weixinContent.setShareContent("内容测试数据,那来这里。。。;内容测试数据,那来这里。。。");
				//设置title
				weixinContent.setTitle("标题测试数据");
				//设置分享内容跳转URL
				weixinContent.setTargetUrl("https://www.baidu.com/");
				//设置分享图片
				UMImage localImage=new UMImage(this,R.drawable.umeng_socialize_wechat);
				weixinContent.setShareImage(localImage);
				//分享
				mController.setShareMedia(weixinContent);

				mController.directShare(this, platform, mShareListener);
			} else {
				// 调用直接分享, 但是在分享前用户可以编辑要分享的内容
				mController.postShare(this, platform, mShareListener);
			}

			break;
		case R.id.iv_wxcircle:
			// 获取用户点击的平台
			platform =SHARE_MEDIA.WEIXIN_CIRCLE;
			if (isDirectShare) {
				// 调用直接分享
				//5.1设置微信朋友圈分享内容
				CircleShareContent circleMedia = new CircleShareContent();
				circleMedia.setShareContent("内容测试数据,那来这里。。。;内容测试数据,那来这里。。。");
				//设置朋友圈title
				circleMedia.setTitle("标题测试数据");
				UMImage localImage=new UMImage(this,R.drawable.umeng_socialize_wxcircle);
				circleMedia.setShareImage(localImage);
				circleMedia.setTargetUrl("https://www.baidu.com/");
				//6.分享
				mController.setShareMedia(circleMedia);

				mController.directShare(this, platform,
						mShareListener);

			} else {
				// 调用直接分享, 但是在分享前用户可以编辑要分享的内容
				mController.postShare(this, platform,
						mShareListener);
			}
		
			break;


以上代码就可以实现微信分享功能,经过测试分享内容需要包含图片才能有title和跳转url。

既然是微信分享,想要实现分享功能,还需要在微信开发平台注册分享的权限。在微信平台申请要注意:应用签名要改为小写并且去掉:即:AB:1E 变为:ab1e,否则分享总会提示失败



0
1
查看评论

友盟社会化分享代码

友盟社会化分享代码 // 首先在您的Activity中添加如下成员变量 mController = UMServiceFactory .getUMSocialService("com.JinshaBlueTooth"); // 参数1为当前A...
  • nieweiking
  • nieweiking
  • 2014-07-30 16:53
  • 9352

友盟+分享到微信、QQ问题解决

之前使用友盟+集成分享功能,但是分享到微信总是会出现问题,下面说一下出现的问题及解决办法,然后再详细介绍一下集成步骤。 一、遇见的问题 1、分享到微信的时候只是闪过,然后又回到应用 解决办法:A)你需要在微信开放平台填入你应用的信息,进行审核,审核通过了才可以。    ...
  • tiankongwindy
  • tiankongwindy
  • 2017-07-26 17:30
  • 1248

android通过友盟进行微信分享的坑

刚好项目中遇到了需要通过第三方微信分享,需要用过友盟的平台(因为之前用的事ShareSDK),去看了一下官方文档,顺便记录一下问题和一些分享的细节。 1,添加一些jar包(只需要去官方下载,没有什么大问题),因为我们公司只需要微信分享,朋友圈和qq空间,所以我下载的都是精简版的 2,需要建一个回...
  • qq_34952110
  • qq_34952110
  • 2017-08-17 10:08
  • 920

umeng(友盟)实现第三方登录和分享详解之分享

一、介绍在上文中umeng(友盟)实现第三方登录和分享详解之登录详解 已经很详细详尽的讲解了umeng分享和登录的配置,还有登录的具体操作。因为篇幅太长,所以分享想另外写一篇。umeng分享和登录配置相同,所以不再赘述上述的配置,大概流程如下:1、各大平台申请appkey2、copy你所需要的平...
  • qq_37237245
  • qq_37237245
  • 2017-08-25 10:15
  • 509

友盟社会化分享之自定义内容分享到微信,微博,豆瓣

以前移动端要做分享的时候一般是两种方法,要么使用Intent调用安卓系统自带的分享功能接口,这是最简单快捷的方法, 要么就自己去QQ微信和各个微博等社交网站申请开发者ID和key,然后在看他们的官方文档,在手机上逐个去实现.所以几年前应用内置的分享一般只支持主流的几个社交点 比如...
  • stzy00
  • stzy00
  • 2015-02-28 10:13
  • 5381

Umeng微信、朋友圈分享

1.注册友盟账号,添加新应用,获取APPKEY. 2.下载最新的分享sdk   http://dev.umeng.com/social/android/quick-integration 3.将main和platforms里面的jar包和资源文件 放入新建   ...
  • ET_IT_TE
  • ET_IT_TE
  • 2015-11-20 16:16
  • 1699

关于友盟自定义视图实现分享 (微信朋友 微信朋友圈 微信收藏)

参考友盟的文档做的 AppDelegate.m 一、 //登陆友盟  注册应用获取的AppKey [UMSocialData setAppKey:@"507fcab25270157b37000010"]; //微信开放平台注册应用 获取的AppId&...
  • qq_28589517
  • qq_28589517
  • 2015-12-07 19:32
  • 846

友盟朋友圈社区使用详解-(无UI版)

今天开始做朋友圈功能,本来是自己自定义.突然发现友盟有这个api 秉着不去重复造轮子的思想. 决定用造好的轮子. 友盟的版块分为 精简版.微博版.论坛版.无UI版. 前面都还好. 主要就是无UI版 发现什么提示都没有. 很蛋疼,有木有. 这篇文章写下来 就是想下次有做的朋友 可以少走一...
  • a625944242
  • a625944242
  • 2016-07-07 10:02
  • 225

友盟自定义分享到朋友圈只显示图片

友盟分享总结: case wechat_friend: sp.setPlatform(sharePlatForm.media); sp.withTitle(shareModel.getTitle()); sp.withText(TextUtils.isEmpty(sha...
  • u013651405
  • u013651405
  • 2016-06-30 11:38
  • 2186

干货,Umeng分享纯图片(避免跳坑)到_微信,朋友圈等

最近碰到项目需要分享纯图片到  QQ ,朋友圈,微信,微博...... 由于之前集成了Umeng分享,私心想着,这么强大的分享库,必定支持纯图片分享... 怀着这份坚定的信念,终于找到该如何分享纯图片到微信,微博,朋友圈,QQ的方法,以下是经验总结: 首先: 纯图片的分享,图片必须是...
  • sun_star1chen
  • sun_star1chen
  • 2016-01-19 17:45
  • 2926