Android 友盟分享面板新增複製連結功能
阿新 • • 發佈:2019-02-07
使用友盟分享,有時候我們需要在分享面板上新增一些額外的按鈕,需要自定義分享按鈕
友盟的整合就不說了,官方文件很詳細,直接說實現,看程式碼:
//分享的方法 public void shareMehtod() { new ShareAction(getActivity()) .setDisplayList(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE) //分享平臺 .addButton("umeng_sharebutton_custom"方法 setDisplayList(); 用來設定分享到的平臺(已經整合好的);,"umeng_sharebutton_custom","info_icon_1","info_icon_1") // 分享面板新增自定義按鈕 .setShareboardclickCallback(shareBoardlistener) //面板點選監聽器 .open(); }
方法 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); }
上面的註釋很詳細了,有不清楚的地方可以留言