Android ShareSDK快速實現分享功能_Android

來源:互聯網
上載者:User

第一步 :擷取ShareSDK

  為了整合ShareSDK,您首先需要到ShareSDK官方網站註冊並且建立應用,獲得ShareSDK的Appkey,然後到SDK的下載頁面下載SDK的壓縮包,解壓以後可以得到如下圖的目錄結構:

  ShareSDK在“ShareSDK for Android”目錄下,此目錄中的“Libs”包含“MainLibs”和“OnekeyShare” 分別是ShareSDK的核心庫和“快捷分享”的源碼庫,說明文檔也在“ShareSDK for Android”目錄下,整合ShareSDK前請務必仔細閱讀。 “ShareSDK for Android ApiDoc”包含Mainlibs和OnekeyShare的JavaDoc,供開發人員開發時查閱。 “ShareSDK for Android Sample”包含ShareSDK的功能示範代碼和apk檔案,Sample源碼的JavaDoc在中。 “ShareSDK for Android Services”包含ShareSDK已經發布的“外掛程式服務”,暫時我們只提供了“評論與贊”服務,壓縮包中已經提供了此外掛程式服務的依賴庫、範例程式碼、JavaDoc和apk檔案。

第二步:匯入ShareSDK

ShareSDK整合方式:

1、直接複製jar包到目標項目libs目錄

  直接複製jar和資源的方式,可以參考ShareSDK的Sample項目。 使用複製jar的方法,需要除了複製MainLibs/libs中的jar外,還需要複製MainLibs/res中圖片和strings,否則會出現授權時找不到資源的問題。 而且如果您的項目也整合了快捷分享,還需要複製OneKeyShare/src中的源碼、OneKeyShare/res中的資源,如果你的項目裡沒有android-support-v4的jar需要把OneKeyShare/libs下的android-support-v4的jar到您的項目中。

2、快速產生項目

  由於直接複製jar包和資源的整合方式比較麻煩,ShareSDK提供了快速整合的程式,在Windows下可以直接雙擊執行,完成以後可以通過複製目標目錄中的檔案到您項目中覆蓋就行了。 極大簡化了“直接複製jar和資源”這種整合方式的操作步驟。 對於你的項目是剛開發或者想寫一個Demo測試ShareSDK功能,可以使用這種方法快速整合

第三步:添加應用資訊

  有三種方式

  第一種:在ShareSDK的應用管理後台中配置,使用此方法需要調用ShareSDK.initSDK(context,你的應用在sharesdk註冊時返回的AppKey)方法進行初始化,如果以後更改了註冊資訊可以直接從網上更改,而不用重新發布新版本進行更新。(優先順序最高)。

  第二種:通過代碼配置“setPlatformDevInfo(String, HashMap<String, Object>)”方法,使用此方法需要調用ShareSDK.init(context,你的應用在sharesdk註冊時返回的AppKey)方法進行初始化。(優先順序中)。

  第三種:通過“assets/ShareSDK.xml”檔案來配置,次方式會以明文存在,但這種方式最為簡單。(優先順序最低)。

  這三種方式開發人員可以自行選擇,不過這三種設定方式各有區別:第一種方式可以實現“動態配置應用資訊”的功能,但是一旦脫離網路,ShareSDK可能無法運作;第三種方式是優先順序最低的方式,但是它最為方便、集中;最後使用代碼設定的方式是最靈活的方式,第二種方式開發人員可以在代碼裡面寫死應用資訊,也可以通過私人協議,從自己的伺服器上動態擷取應用註冊資訊,其優先順序居第一種和第二種之間。 使用ShareSDK.xml配置註冊資訊

<ShareSDK AppKey="填寫您在ShareSDK上註冊到的AppKey" /><SinaWeibo SortId="此平台在您分享列表中的位置,整型,數值越大越靠後" AppKey="填寫您在新浪微博上註冊到的AppKey" AppSecret="填寫您在新浪微博上註冊到的AppSecret" Id="自訂欄位,整型,用於您項目中對此平台的識別符" RedirectUrl="填寫您在新浪微博上註冊的RedirectUrl" ShareByAppClient="是否使用用戶端進行分享" Enable="布爾值,標記此平台是否有效" /> 

  ShareSDK.xml以XML格式儲存資料,每一個平台一個塊,除了社交平台外,開發人員在ShareSDK註冊應用時得到的Appkey需要填寫在塊“ShareSDK”中,如果此Appkey不是開發人員自己的Appkey,則將來在ShareSDK應用背景統計資料將不正確。ShareSDK的每一個平台都具備SortId、Id、Enable四個欄位,除此之外的欄位(如新浪微博的AppKey、AppSecret、RedirectUrl、ShareByAppClient等欄位)需要到目標平台上註冊應用以後得到,請正確填寫這些欄位的資料,否則ShareSDK無法完成授權,則後續的其它操作也將無法執行。

  代碼配置註冊資訊樣本(示範初始化新浪微博配置資訊) 因為各個分享平台可以設定的配置資訊不同,具體分享平台需要設定哪些配置資訊請參考sample裡的ShareSDK.xml設定檔

ShareSDK.initSDK(Context,"你的應用在Sharesdk註冊時返回的AppKey"); HashMap<String,Object> hashMap = new HashMap<String, Object>(); hashMap.put("Id","1"); hashMap.put("SortId","1"); hashMap.put("AppKey","568898243"); hashMap.put("AppSecret","38a4f8204cc784f81f9f0daaf31e02e3"); hashMap.put("RedirectUrl","http://www.sharesdk.cn"); hashMap.put("ShareByAppClient","true"); hashMap.put("Enable","true"); ShareSDK.setPlatformDevInfo(SinaWeibo.NAME,hashMap); 

  方法需要在Sharesdk.initSDK()方法後調用,如果調用了ShareSDK.stopSDK()需要在ShareSDK.initSDK後重新調用ShareSDK.setPlatformDevInfo()方法。 關於應用資訊不同欄位的更詳細解釋,可以參考ShareSDK.xml檔案頭部的說明。

第四步:配置AndroidManifest.xml

  不同的整合度需要在AndroidManifest.xml中添加的內容不一樣。但是首先您需要添加下面的許可權列表:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/><uses-permission android:name="android.permission.GET_ACCOUNTS"/><uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.GET_TASKS"/><uses-permission android:name="android.permission.INTERNET"/> 

  這些許可權將允許您的項目和ShareSDK判斷當前應用是否“前置”、擷取串連網路的許可權、擷取您的裝置網路狀態的許可權、實現https安全連線的許可權、讀取手機裝置狀態的許可權和儲存必要配置的許可權。一般來說,即便不整合ShareSDK,大部分的項目也都會註冊申請這些許可權。

  其次,為了授權操作可以順利完成,需要在application下註冊下面的Activity:

<activityandroid:name="com.mob.tools.MobUIShell"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="keyboardHidden|orientation|screenSize"android:screenOrientation="portrait"android:windowSoftInputMode="stateHidden|adjustResize" /> 

  如果您的項目集微信或者微信朋友圈,請查看AndroidManifest.xml設定檔裡的package路徑,需要在package目錄下建立wxapi目錄再放置WXEntryActivity。 沒有此activity在微信分享後回調會檢查是否有此activity,沒有將會報錯。

<activity android:name=".wxapi.WXEntryActivity"android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" /> 

  而如果您的項目集易信的兩個平台,請查看AndroidManifest.xml設定檔裡的package路徑需要在package目錄下建立yxapi目錄在放置回調Activity:

<activity android:name=".yxapi.YXEntryActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" /> 

  用戶端的操作回調,因此ShareSDK也無法給予您操作回調。為了避免出錯,請使用相對路徑的方式,直接複製上面的代碼到您的AndroidManifest.xml中即可。

第五步:添加代碼

  開啟您項目的入口Activity,在其onCreate中插入下面的代碼: 如果使用ShareSDK.xml方式配置調用

ShareSDK.initSDK(this);

  如果使用代碼配置應用註冊資訊或者應用後台配置應用註冊資訊,調用

ShareSDK.initSDK(this,”androidv1101″);

  androidv1101:是你的應用在ShareSDK註冊應用資訊時返回的AppKey。 代碼會初始化ShareSDK,此後對ShareSDK的操作都以此為基礎。如果不在所有ShareSDK的操作之前調用這行代碼,會拋出null 指標異常。

  效果圖:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.