6. 分享
分享分为两种样式,使用默认分享面板选择页面和自定义分享样式
6.1 默认shareboard:
final SHARE_MEDIA[] displaylist = new SHARE_MEDIA[]
{
SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.SINA,
SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE,SHARE_MEDIA.DOUBAN
};
new ShareAction(this).setDisplayList( displaylist )
.withText( "呵呵" )
.withTitle("title")
.withTargetUrl("http://www.baidu.com")
.withMedia( image )
.setListenerList(umShareListener)
.open();
- title参数对新浪、人人、豆瓣不生效
6.2 开启回流统计的方法:
针对5.0.4版本之后,支持微信/朋友圈、新浪、QQ/Qzone、豆瓣、人人平台的回流率统计
Config.isloadUrl = true
6.3 自定义分享样式
对于需要自己定义分享UI样式的开发者,可以自行绘制分享模块的整个UI,在对应的分享按钮中实现下面的方法
new ShareAction(this)
.setPlatform(SHARE_MEDIA.SINA)
.setCallback(umShareListener)
.withText("hello umeng video")
.withTargetUrl("http://www.baidu.com")
.withMedia(image)
.share();
选取分享的平台,设定分享回调接口和内容,并执行share方法。 回调接口如下:
new UMShareListener() {
@Override
publicvoidonResult(SHARE_MEDIA platform) {
Toast.makeText(ShareActivity.this,platform + " 分享成功啦", Toast.LENGTH_SHORT).show();
}
@Override
publicvoidonError(SHARE_MEDIA platform, Throwable t) {
Toast.makeText(ShareActivity.this,platform + " 分享失败啦", Toast.LENGTH_SHORT).show();
}
@Override
publicvoidonCancel(SHARE_MEDIA platform) {
Toast.makeText(ShareActivity.this,platform + " 分享取消了", Toast.LENGTH_SHORT).show();
}
};
值得注意的是,分享也应该重写
onActivityResult()
@Override
protectedvoidonActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get( this ).onActivityResult( requestCode, resultCode, data);
}
6.4 设置分享内容
目前支持文本、图片(本地及URL)、音频及视频URL的分享
图片(url)
UMImage image = new UMImage(ShareActivity.this, "http://www.umeng.com/images/pic/social/integrated_3.png");
图片(本地资源引用)
UMImage image = new UMImage(ShareActivity.this,
BitmapFactory.decodeResource(getResources(), R.drawable.image));
图片(本地绝对路径)
UMImage image = new UMImage(ShareActivity.this,
BitmapFactory.decodeFile("/mnt/sdcard/icon.png")));
URL音频及图片
UMusic music = new UMusic("http://music.huoxing.com/upload/20130330/1364651263157_1085.mp3");
music.setTitle("sdasdasd");
music.setThumb(new UMImage(ShareActivity.this,"http://www.umeng.com/images/pic/social/chart_1.png"));
url视频
UMVideo video = new UMVideo("http://video.sina.com.cn/p/sports/cba/v/2013-10-22/144463050817.html");
MainActivity 主要代码
//分享**
private void share(){
UMShareListener umShareListener=new UMShareListener() {
@Override
public void onResult(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this,platform + " 分享成功啦", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(SHARE_MEDIA platform, Throwable t) {
Toast.makeText(MainActivity.this,platform + " 分享失败啦", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this,platform + " 分享取消了", Toast.LENGTH_SHORT).show();
}
};
final SHARE_MEDIA[] displaylist = new SHARE_MEDIA[]
{
SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE
};
//默认分享
// new ShareAction(this).setDisplayList( displaylist )
// .withText( "电一等你" )
// .withTitle("泰者、师太矣")
// .withTargetUrl("http://lol.qq.com/")
.withMedia(image)
// .setListenerList(umShareListener)
// .open();
//自定义分享
UMImage image = new UMImage(MainActivity.this,
BitmapFactory.decodeResource(getResources(), R.mipmap.photo10));
new ShareAction(this)
.setPlatform(SHARE_MEDIA.QQ)//QQ空间分享改为QZONE
.setCallback(umShareListener)
.withTitle("奥欧尼亚")
.withText("泰者,来乎!")
.withTargetUrl("http://www.baidu.com")
.withMedia(image)
.share();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get( this ).onActivityResult( requestCode, resultCode, data);
}
****注意将Android manifest xml里的 腾讯平台APPID替换为自己申请的APPID,注意tencent前缀不要修改,否则会在分享后提示40000或分享取消