Android分享腳手架:Github/EasyShare說明文件

MichaelX發表於2019-04-15

EasyShare

一個Android社會化分享腳手架,整合微信,qq,微博分享。 專案地址:github.com/xiong-it/Ea…

作用

這是個Android社會化分享腳手架,利用抽象工廠,橋接模式封裝的一個簡單易定製的分享元件,無法代替ShareSDK等商業化SDK使用,僅供開發交流探討,不建議線上專案直接使用。

結構

Android分享腳手架:Github/EasyShare說明文件

  • callback-回撥介面定義
  • factory-工廠類,頂級抽象工廠定義生產的所有平臺的分享資料函式,子類工廠生產對應的資料型別,新增分享資料型別時需要新增子類工廠生產對應的IShareMode。
  • model-模型類,頂級介面為IShareModel,分享資料所需要的資料模型,在此處新增需要分享的資料模型。
  • platform-分享目標平臺,ISharePlatform是目標平臺介面,所有衍生平臺需實現該介面, 當接入新的分享平臺時,需要在此處進行擴充套件。
  • type-分享資料型別的封裝,分享的入口,頂級介面IShareContentType,持有Share行為,當需要分享的型別發生變化時,需在此處實現新的IShareContentType型別。
  • wxapi-包名必須是專案包名,此處只做演示參考用。
  • ui-介面相關類,比如IShareDialog.java,分享選擇彈窗的介面類,需在專案中使用的彈窗中實現該介面。

架構

Android分享腳手架:Github/EasyShare說明文件

  • IShareContent:分享的內容介面定義,具有share行為,通過橋接模式將share行為交給ISharePlatform執行
  • ISharePlatform:承接分享內容的目標平臺,實際分享行為的物件介面
  • IShareModel:分享內容的屬性封裝,比如標題,圖片地址,連結等
  • IShareDataFactory:根據IShareModel生產分享ISharePlatform平臺所需的資料,其實現類抽象工廠AbsShareDataFactory定義了生產微信,朋友圈,QQ,微博4個產品族所需的資料函式

整合步驟

  1. clone該倉庫
  2. 參考DemoActivity

當你需要新增分享型別

  1. 新增IShareModel介面實現類
  2. 新增IShareContent介面實現類
  3. 新增抽象工廠子類生產對應資料進行分享

當你需要新增分享平臺

  1. 引入對應平臺依賴libs
  2. 新增ISharePlatform介面實現類
  3. 修改AbsShareDataFactory抽象類擴充套件產品族及其子類實現
  4. 修改IShareDialog子類實現,新增點選事件

相關文章