跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

【SC10018】如何实现不同分享平台分享不同的内容

如何实现不同分享平台分享不同的内容

问题描述

如何实现不同分享平台分享不同的内容

解决方案

在使用UShare默认提供的分享面板选择页时,通常来说所有平台的内容都是预设好的一套内容(包含文本、图片、链接等),但有一部分开发者需要设置不同的内容,比如针对短信平台使用文本类型,其他平台使用链接类型,或者是微信平台和新浪平台使用不同的文本内容等等,这种需求可以统一使用ShareBoardlistener这个监听器来实现,通过监听回调来判断平台,进而分别设置不同的内容,代码参考如下:

mShareAction = new ShareAction(ShareMenuActivity.this).setDisplayList(
                SHARE_MEDIA.WEIXIN,
                SHARE_MEDIA.SINA, SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE,
                SHARE_MEDIA.ALIPAY, SHARE_MEDIA.RENREN, SHARE_MEDIA.DOUBAN,
                SHARE_MEDIA.SMS, SHARE_MEDIA.MORE)
                .addButton("umeng_sharebutton_copy", "umeng_sharebutton_copy", "umeng_socialize_copy", "umeng_socialize_copy")
                .addButton("umeng_sharebutton_copyurl", "umeng_sharebutton_copyurl", "umeng_socialize_copyurl", "umeng_socialize_copyurl")
                .setShareboardclickCallback(new ShareBoardlistener() {
                    @Override
                    public void onclick(SnsPlatform snsPlatform, SHARE_MEDIA share_media) {
                        if (snsPlatform.mShowWord.equals("umeng_sharebutton_copy")) {
                            Toast.makeText(ShareMenuActivity.this, "复制文本按钮", Toast.LENGTH_LONG).show();
                        } else if (snsPlatform.mShowWord.equals("umeng_sharebutton_copyurl")) {
                            Toast.makeText(ShareMenuActivity.this, "复制链接按钮", Toast.LENGTH_LONG).show();

                        }else if(share_media == SHARE_MEDIA.SMS) {
                            new ShareAction(ShareMenuActivity.this).withText("来自分享面板标题")
                                .setPlatform(share_media)
                                .setCallback(mShareListener)
                                .share();
                        }else
                         {
                            UMWeb web = new UMWeb(Defaultcontent.url);
                            web.setTitle("来自分享面板标题");
                            web.setDescription("来自分享面板内容");
                            web.setThumb(new UMImage(ShareMenuActivity.this, R.drawable.logo));
                            new ShareAction(ShareMenuActivity.this).withMedia(web)
                                    .setPlatform(share_media)
                                    .setCallback(mShareListener)
                                    .share();
                        }
                    }
                });
  • 注:在这段代码里,通过面板监听器,判断短信平台,设置为文本内容,其他平台仍然采用默认的web类型