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

【分享集成】如何使用友盟分享面板进行自定义

2016-12-08 15:28 831 查看
最近友盟分享6.1发布了,相信看过的同学都知道这次更新最大的亮点就是分享面板了。在这里我们先做一下对比,感受一下分享面板的变化。

友盟旧版的分享面板长这样:

这个应该是4.x的版本时候





6,1之后



感觉在面板的实用程度上比之前提高了很多

基本上适配了主流app分享面板的样式,不用像以前那样自己改很多了

看了一会儿之后发现,这个里面不单单提供了这几个样式,还能自己修改~

自定义分享面板

你如果不喜欢上面实例中提供的分享面板样式,可以根据提供的接口参数设置成任何你想要的样子。

您需要做的只是配置一个ShareBoardConfig类即可。

下面先用IOS举个例子,效果如下图所示:



ios版

代码如下:
[UMSocialShareUIConfigshareInstance].sharePlatformItemViewConfig.sharePlatformItemViewPlatformNameColor= [UIColorgreenColor];//每个平台名字的背景色
[UMSocialShareUIConfigshareInstance].sharePlatformItemViewConfig.sharePlatformItemViewBGRadiusColor= [UIColorgreenColor];//每个平台icon的背景色
[UMSocialShareUIConfigshareInstance].shareTitleViewConfig.shareTitleViewBackgroundColor= [UIColoryellowColor];//标题的背景色
[UMSocialShareUIConfigshareInstance].shareTitleViewConfig.shareTitleViewTitleString=@"我就是标题,我也能改";//标题的名字
[UMSocialShareUIConfigshareInstance].shareCancelControlConfig.isShow=false;//不显示取消按钮
[UMSocialShareUIConfigshareInstance].sharePageGroupViewConfig.sharePageGroupViewPostionType=UMSocialSharePageGroupViewPositionType_Middle;//屏幕中间显示
[UMSocialShareUIConfigshareInstance].sharePageScrollViewConfig.shareScrollViewPageItemStyleType=UMSocialPlatformItemViewBackgroudType_IconAndBGRadius;//圆形icon
[UMSocialUIManagershowShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformTypeplatformType,NSDictionary*userInfo) {
……
}];//打开分享面板

接下来在看一个android的效果图:



android版

ShareBoardConfig config =newShareBoardConfig();
config.setShareboardPostion(ShareBoardConfig.SHAREBOARD_POSITION_CENTER);//分享面板在中间出现
config.setMenuItemBackgroundShape(ShareBoardConfig.BG_SHAPE_CIRCULAR);// 圆角背景
config.setShareboardBackgroundColor(Color.BLUE);//分享面板背景颜色
config.setCancelButtonText("我也能改,点我取消");//取消按钮
config.setTitleVisibility(false);// 隐藏title
mShareAction.open(config);//打开分享面板

由于篇幅有限,这里不再赘述了,但是你能想到的,在这个分享面板中都能修改,具体的修改功能可以参照友盟的文档。

以前由于分享面板样式单一化,其实大多数开发者都需要根据需要,自己写分享面板的界面然后调用sdk的分享,现在有了可定制的分享面板,真是省了不少的事。

添加自定义平台

在开发的过程中,经常会遇到这种情况,分享面板中不仅显示分享的平台,还要有些自定义的功能,比如复制,收藏等。这些情况早已被友盟的开发者们考虑在内,现在可以一起看看如何实现吧。

对于IOS:

只需要根据文档,预设一个handler,然后将这个handler放进分享面板即可:

[UMSocialUIManagersetPreDefinePlatforms:@[@(UMSocialPlatformType_WechatSession),@(UMSocialPlatformType_WechatTimeLine),……@(UMSocialPlatformType_UserDefine_Begin+1),]];


然后调用方法打开分享面板即可,其中UMSocialPlatformType_UserDefine_Begin+1即是你自定义的平台功能,实现效果如下图所示(template为自定义平台):



对于android,只需要下面代码即可

mShareAction=newShareAction(ShareMenuActivity.this).setDisplayList(
SHARE_MEDIA.WEIXIN,……)
.addButton("umeng_sharebutton_custom","umeng_sharebutton_custom","zijian","zijian")
.setShareboardclickCallback(newShareBoardlistener() {
@Override
public voidonclick(SnsPlatform snsPlatform,SHARE_MEDIA share_media) {
if(snsPlatform.mShowWord.equals("umeng_sharebutton_custom")) {
Toast.makeText(ShareMenuActivity.this,"自定义按钮",Toast.LENGTH_LONG).show();
}else{
newShareAction(ShareMenuActivity.this).withText(Defaultcontent.text+"来自友盟自定义分享面板")
.setPlatform(share_media)
.setCallback(mShareListener)
.share();
}
}
});

其中addButton即可实现在分享面板中添加一个按钮的功能,具体实现可以参照线上文档,下面可以看一下效果图:



1.android对V4包的兼容

如果android工程想使用分享面板,理论上需要添加umeng_shareboard_widget.jar和umeng_social_view.jar。但是如果您的工程本身就有v4的jar,可以不添加umeng_shareboard_widget.jar。减少了代码的冗余,降低了最终apk的大小。

2.不使用分享面板,可以直接删掉对应的库

在老版本中,不管你用不用分享面板,它都被打在jar中,产生了代码的冗余。但是新版本,不管你使用的是android还是ios,如果不想使用分享面板可以删掉对应的库文件或jar文件即可。不会增加你应用的大小。 这点我感觉挺好的,体积小了很多

3.兼容老版本

虽然新版中增加了分享面板自定义的功能,但是还是有些老用户升级到最新版,只需要替换对应的库文件,代码不变,也不会报错,实现了对老版本的兼容(android兼容5.x以上的版本,ios兼容6.x以上的版本)。

说了这么多新版分享面板的优点,真是满满感受到友盟分享同学们的诚意,还在使用友盟4.x,友盟5.x或者其他分享sdk的朋友们,是不是抓紧时间来一发。

以下是对应平台的下载地址

安卓:http://dev.umeng.com/social/android/sdk-download

ios:http://dev.umeng.com/social/ios/sdk-download
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息