Android 友盟分享面板添加复制链接功能

使用友盟分享,有时候我们需要在分享面板上添加一些额外的按钮,需要自定义分享按钮

友盟的集成就不说了,官方文档很详细,直接说实现,看代码:

//分享的方法
public void shareMehtod() {

    new ShareAction(getActivity())
            .setDisplayList(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE)
            //分享平台
            .addButton("umeng_sharebutton_custom","umeng_sharebutton_custom","info_icon_1","info_icon_1")
            // 分享面板添加自定义按钮
            .setShareboardclickCallback(shareBoardlistener)
            //面板点击监听器
            .open();
}
方法 setDisplayList(); 用来设置分享到的平台(已经集成好的);

方法 addButton(); 四个参数:自定义按钮的key value  自定义图标名称 图标值(放置在图片资源文件夹下)

//分享的监听
private ShareBoardlistener shareBoardlistener = new  ShareBoardlistener() {

    @Override
    public void onclick(SnsPlatform snsPlatform, SHARE_MEDIA share_media) {
        if (share_media==null){
            //根据key来区分自定义按钮的类型,并进行对应的操作
            if (snsPlatform.mKeyword.equals("umeng_sharebutton_custom")){
                //点击后复制微信号的逻辑
                ClipboardManager cm = (ClipboardManager)getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
                // 将文本内容放到系统剪贴板里。
                cm.setText("");
                MyToast.showToast(getActivity(), "链接已复制成功!").show();
            }

        }
        else {//社交平台的分享行为
            //分享的图片
            UMImage thumb = new UMImage(getActivity(), R.mipmap.thumbnail);
            //分享链接
            UMWeb web = new UMWeb(UrlContent.getContentDetialsData+myApplication.getThe_farmer_aid());
            web.setTitle("");//标题
            web.setThumb(thumb);  //缩略图
            web.setDescription("");//描述
            new ShareAction(getActivity())
                    .setPlatform(share_media)
                    .withText("多平台分享")
                    .withMedia(web)
                    .setCallback(new UMShareListener() {
                        @Override
                        public void onStart(SHARE_MEDIA share_media) {

                        }

                        @Override
                        public void onResult(SHARE_MEDIA share_media) {
                            MyToast.showToast(getActivity(), "分享成功!").show();
                        }

                        @Override
                        public void onError(SHARE_MEDIA share_media, Throwable throwable) {
                            MyToast.showToast(getActivity(), "分享失败!").show();
                        }

                        @Override
                        public void onCancel(SHARE_MEDIA share_media) {
                            MyToast.showToast(getActivity(), "分享取消!").show();
                        }
                    })
                    .share();
        }
    }
};

另外不要忘了在Activity里回调

//分享后的回调
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}

上面的注释很详细了,有不清楚的地方可以留言

猜你喜欢

转载自blog.csdn.net/qiy6010/article/details/77155661