1. 程式人生 > >Android 友盟分享面板新增複製連結功能

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);
}

上面的註釋很詳細了,有不清楚的地方可以留言