关闭

Umeng微信、朋友圈分享

标签: sdk友盟应用
1025人阅读 评论(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。

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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1227次
    • 积分:31
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档
    阅读排行