友盟分享文档

本文档详细介绍了友盟分享的集成方法,包括带面板和不带面板的分享方式,以及文本、图片、链接、视频、音乐、GIF和微信小程序等多种消息类型的分享。同时,还提供了各平台支持的分享类型预览。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.  分享集成

友盟分享分为两种形式:

  • 使用分享面板的分享,用户可以调用我们的打开分享面板的方法,点击分享面板的对应平台进行分享。
  • 不使用分享面板的分享,用户可以自己写分享按钮,或者触发事件,然后调用我们的分享方法,进行分享。

简而言之,直接分享就是在用户自己的界面组件中插入分享行为,分享面板是打开我们写好的一个界面组件,根据点击事件进行分享。

2.1  分享(带面板)

打开分享面板的代码如下:

new ShareAction(MainActivity.this)
    .withText("hello")                    
    .setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
    .setCallback(umShareListener)
    .open();

关于分享面板的更多功能可以参照分享面板进阶

2.2  分享(不带面板)

分享可以通过如下代码实现:

new ShareAction(MainActivity.this)
.setPlatform(SHARE_MEDIA.QQ)//传入平台
.withText("hello")//分享内容
.setCallback(umShareListener)//回调监听器
.share();

其中umShareListener为回调监听,构建如下:

 private UMShareListener shareListener = new UMShareListener() {
        /**
         * @descrption 分享开始的回调
         * @param platform 平台类型
         */
        @Override
        public void onStart(SHARE_MEDIA platform) {

        }

        /**
         * @descrption 分享成功的回调
         * @param platform 平台类型
         */
        @Override
        public void onResult(SHARE_MEDIA platform) {
            Toast.makeText(ShareDetailActivity.this,"成功了",Toast.LENGTH_LONG).show();
        }

        /**
         * @descrption 分享失败的回调
         * @param platform 平台类型
         * @param t 错误原因
         */
        @Override
        public void onError(SHARE_MEDIA platform, Throwable t) {
            Toast.makeText(ShareDetailActivity.this,"失败"+t.getMessage(),Toast.LENGTH_LONG).show();
        }

        /**
         * @descrption 分享取消的回调
         * @param platform 平台类型
         */
        @Override
        public void onCancel(SHARE_MEDIA platform) {
            Toast.makeText(ShareDetailActivity.this,"取消了",Toast.LENGTH_LONG).show();

        }
    };

2.3  分享消息类型

对于分享内容可以有如下设置

2.3.1  文本

纯文本分享如下:

new ShareAction(ShareActivity.this).withText("hello").withMedia(image).share();

2.3.2  图片

在使用ShareAction的时候,调用withMedia可以设置一个UMImage(图片分享),UMImage的构建有如下几种形式

UMImage image = new UMImage(ShareActivity.this, "imageurl");//网络图片
UMImage image = new UMImage(ShareActivity.this, file);//本地文件
UMImage image = new UMImage(ShareActivity.this, R.drawable.xxx);//资源文件
UMImage image = new UMImage(ShareActivity.this, bitmap);//bitmap文件
UMImage image = new UMImage(ShareActivity.this, byte[]);//字节流

推荐使用网络图片和资源文件的方式,平台兼容性更高。 对于部分平台,分享的图片需要设置缩略图,缩略图的设置规则为:

UMImage thumb =  new UMImage(this, R.drawable.thumb);
image.setThumb(thumb);

用户设置的图片大小最好不要超过250k,缩略图不要超过18k,如果超过太多(最好不要分享1M以上的图片,压缩效率会很低),图片会被压缩。 用户可以设置压缩的方式:


image.compressStyle = UMImage.CompressStyle.SCALE;//大小压缩,默认为大小压缩,适合普通很大的图
image.compressStyle = UMImage.CompressStyle.QUALITY;//质量压缩,适合长图的分享
压缩格式设置
image.compressFormat = Bitmap.CompressFormat.PNG;//用户分享透明背景的图片可以设置这种方式,但是qq好友,微信朋友圈,不支持透明背景图片,会变成黑色

创建好UMImage之后调用分享即可,如下所示:

new ShareAction(ShareActivity.this).withText("hello").withMedia(image).share();

2.3.3  链接

分享链接可以使用UMWeb进行分享:

UMWeb  web = new UMWeb(Defaultcontent.url);
        web.setTitle("This is music title");//标题
        web.setThumb(thumb);  //缩略图
        web.setDescription("my description");//描述

然后调用将这个参数设置到ShareAction中:

new ShareAction(ShareActivity.this)
    .withMedia(web)
    .share();

2.3.4  视频

视频只能使用网络视频:

UMVideo video = new UMVideo(videourl);
video.setTitle("This is music title");//视频的标题
video.setThumb("http://www.umeng.com/images/pic/social/chart_1.png");//视频的缩略图
video.setDescription("my description");//视频的描述

建立好之后可以进行分享:

new ShareAction(ShareActivity.this).withText("hello").withMedia(video).share(); 

2.3.5  音乐

音乐只能使用网络音乐:

UMusic music = new UMusic(musicurl);//音乐的播放链接
music.setTitle("This is music title");//音乐的标题
music.setThumb("http://www.umeng.com/images/pic/social/chart_1.png");//音乐的缩略图
music.setDescription("my description");//音乐的描述
music.setmTargetUrl(Defaultcontent.url);//音乐的跳转链接

建立好之后可以进行分享:

new ShareAction(ShareActivity.this)
    .withMedia(music)
    .share();      

特别说明:播放链接是指在微信qq分享音乐,是可以在当前聊天界面播放的,要求这个musicurl(播放链接)必须要以.mp3等音乐格式结尾,跳转链接是指点击linkcard之后进行跳转的链接。

2.3.6  GIF

目前只有微信好友分享支持Emoji表情,其他平台暂不支持

UMEmoji emoji = new UMEmoji(this,"http://img5.imgtn.bdimg.com/it/u=2749190246,3857616763&fm=21&gp=0.jpg");
emoji.setThumb(new UMImage(this, R.drawable.thumb));
new ShareAction(ShareActivity.this)
    .withMedia(emoji)
    .share(); 

2.3.7  微信小程序

目前只有微信好友支持小程序分享,朋友圈,收藏及其他平台暂不支持:

UMMin umMin = new UMMin(Defaultcontent.url);
umMin.setThumb(imagelocal);
umMin.setTitle(Defaultcontent.title);
umMin.setDescription(Defaultcontent.text);
umMin.setPath("pages/page10007/xxxxxx");
umMin.setUserName("xx_xxx");
new ShareAction(ShareDetailActivity.this)
    .withMedia(umMin)
    .setPlatform(share_media)
    .setCallback(shareListener)
    .share();

2.4  分享到其他平台

2.4.1  各平台支持的分享类型预览

平台 是否支持登录 可分享内容 是否支持获取用户信息
QQ 图片 链接 视频 音乐
Qzone 文字(说说) 图片(说说) 链接 视频 音乐
微信 文本 图片 链接 视频 音乐
微信朋友圈 文本 图片 链接(Description不会显示) 视频 音乐
新浪微博 文本 图片 图文 链接(需要linkcard权限,否则不显示图片) 视频 音乐
腾讯微博 是(网页) 文本 图片 图文 链接 视频 音乐
支付宝 文本 图片 链接 视频 音乐
钉钉 文本 图片 链接 视频 音乐
易信/朋友圈 文本 图片 链接 视频 音乐
人人 是(网页) 文本 图文 图片
豆瓣 是(网页) 文本 图文 图片
点点虫动态 文本 图文 图片 链接 视频 音乐
微信收藏 文本 图片 链接 视频 音乐 文件
LinkedIn 文本 图文 图片 链接 视频 音乐
Facebook 图片 链接 视频
Facebook Messenger 图片 链接 视频
Twitter 文本 图文 图片
短信 文本 图文 图片
邮件 文本 图文 图片
Instagram 图片
Pinterest 图片
Tumblr 文本 图片
line 文本 图文 图片
whatsapp 文本 图片 图文
flickr 图片
kakao 文本 图文 图片
googleplus 文本 图文 图片
印象笔记 文本 图片 图文
有道笔记 文本 图片 图文
pocket 链接
foursquare 图片
Dropbox 图片
VKnotakte 图片 文本 链接 音乐 视频
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值