Umeng微信、朋友圈分享

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。

既然是微信分享,想要实现分享功能,还需要在微信开发平台注册分享的权限。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值