1. 程式人生 > >【分享整合】如何使用友盟分享面板進行自定義

【分享整合】如何使用友盟分享面板進行自定義

最近友盟分享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