ChinaShare - Android社交分享組件
描述
每個應用程序中,都可能會有分享的需求,比如分享一個商品詳情頁或者一些活動到微博或者微信等社交平臺。 這個 lib 將分享相關的功能模塊化了,使用它你可以方便的實現自己項目的分享功能。
效果圖
使用方法
1、將 share 模塊拷貝至自己項目
說明一下,因為 share 中有較多的 三方 lib jar文件,再加上他們可能會更新,所以 share lib 不會發布到 中央倉庫去,這里如果要使用,直接通過最粗暴的方式將 share 模塊直接拷貝至自己項目目錄,然后在setting 中加入 share 模塊
include ':app', ':share'
接著在項目 build 目錄中加入如下依賴路徑
compile project(':share') 2、在Application的onCreate方法中設置分享相關屬性
@Override
public void onCreate() {
super.onCreate();
//配置所有的分享方式
LinkedHashMap<SHARE_MEDIA,Integer>iconMap = new LinkedHashMap<>();
iconMap.put(SHARE_MEDIA.WEICHAT,R.drawable.share_weixin);
iconMap.put(SHARE_MEDIA.WEICHATCIRCLE,R.drawable.share_momment);
iconMap.put(SHARE_MEDIA.SINA,R.drawable.share_sina);
iconMap.put(SHARE_MEDIA.QQ,R.drawable.share_qq);
iconMap.put(SHARE_MEDIA.QQZONE,R.drawable.share_qzeon);
iconMap.put(SHARE_MEDIA.MESSAGE, R.drawable.share_message);
//初始化分享相關的key、appId 信息
ShareManager.init()
//應用的名字
.setAppName("test")
.setDefShareImageUrl("默認分享的圖片url")
.addShareMedia(SHARE_MEDIA.WEICHAT, SHARE_MEDIA.WEICHATCIRCLE, SHARE_MEDIA.SINA, SHARE_MEDIA.QQ, SHARE_MEDIA.QQZONE, SHARE_MEDIA.MESSAGE)
//如果要自定義分享的圖標,可以通過下面的方式進行設置,使用的默認分享圖標,注釋該方法即可
//.setShareWayIconMap(iconMap)
.setQQAppId("自己申請的appId")
.setWeiboAppId("自己申請的appId")
.setWechatAppId("自己申請的appId")
.setSinaRedirectUrl("https://api.weibo.com/oauth2/default.html")
.setScope("email,direct_messages_read,direct_messages_write,\"\n" +
" + \"friendships_groups_read,friendships_groups_write,statuses_to_me_read,\"\n" +
" + \"follow_app_official_microblog,\" + \"invitation_write")
.setDefImageUrlId(R.drawable.ic_launcher);
} share lib 默認已經提供了一個很常見的分享界面,如上面截圖所示。 如果你的項目中的分享界面樣式跟這個有出入(這簡直是一定的),你可以直接修改layout文件 /layout/layout_share_grideview.xml
3、使用ShareView
ShareView可以在任何界面中使用。
-
申明ShareView的一個實例
ShareView mShareView;
-
實例化ShareView 最好在onCreate時實例化
mShareView = new ShareView(this,"分享"); //可以移除對應的分享方式 Setting.getInstance().removeShareMedia(SHARE_MEDIA.SINA, SHARE_MEDIA.WEICHAT); mShareView.setShareInfo(this, new TestImpl(this));
-
顯示ShareView
mShareView.show();
具體的分享內容通過實現AbsWarpTemplateShare類的子類來進行設置。TestImpl就是一個例子,如下
public class TestImpl extends AbsWarpTemplateShare {
public DuoYongBaoShareImpl(Context context) {
super(context);
}
@Override
public IShareInfo warpWeichatInfo() {
return new SimpleShareText("快來關注多傭寶",mContext.getString(R.string.share_duo_yongbao),"http://www.meiliwu.com","");
}
@Override
public IShareInfo warpSinaInfo() {
return new SimpleShareText("快來關注多傭寶",mContext.getString(R.string.share_duo_yongbao),"http://www.meiliwu.com","");
}
@Override
public IShareInfo warpQQInfo() {
return new SimpleShareText("快來關注多傭寶",mContext.getString(R.string.share_duo_yongbao),"http://www.meiliwu.com","");
}
@Override
public IShareInfo warpMessageInfo() {
return new SimpleShareText("快來關注多傭寶",mContext.getString(R.string.share_duo_yongbao),"http://www.meiliwu.com","");
}
} 新浪微博分享
1)新浪微博分享前準備工作 在進行新浪微博分享前,需要在AndroidManifest.xml中,在需要接收消息的Activity(喚起微博主程序的類)里聲明對應的Action:ACTION_SDK_REQ_ACTIVITY,如下所示:
<activity
android:name="com.sina.weibo.sdk.demo.WBShareActivity"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity> 2)在進行新浪微博分享前,需要在分享Activity(喚起微博主程序的類)里重寫onActivityResult方法,并調用mShareView.setOnActivityResult(requestCode, resultCode, data)方法,如下所示:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mShareView.setOnActivityResult(requestCode, resultCode, data);
} 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
