您的位置:首页 > 移动开发 > 微信开发

Umeng微信、朋友圈分享

2015-11-20 15:05 489 查看
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,否则分享总会提示失败
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: