如今的app中,幾乎都(dou)包(bao)含了分(fen)享這個功能(neng),十(shi)分(fen)的常(chang)用,常(chang)見(jian)實現(xian)方式:
- 系統自帶分享
- 使用社會化分享組件(如shareSDK等)
- 集成三方SDK(QQ,微信,微博等
自帶分享(xiang)功能(neng)功能(neng)太過單一,不(bu)能(neng)滿足復雜(za)的業務需(xu)求,這里主要介紹一下ShareSdk。
ShareSDK是一種社(she)會化(hua)分享組件,為(wei)iOS、Android、WP8 的APP提供社(she)會化(hua)功能(neng),集成了一些常用的類庫(ku)和接口,縮短開發(fa)者的開發(fa)時間,還有(you)社(she)會化(hua)統計分析管(guan)理后臺。
下面(mian)將(jiang)介紹下ShareSDK怎(zen)么使用(yong)
添加應用
在 進行添加應用
完成之后進(jin)入應用(yong)管理后臺。可以看(kan)到應用(yong)的App Key和(he)App Secret
其中App Key將在后(hou)面的(de)開發(fa)中用到。
下載ShareSDK
選擇要分享的平(ping)臺,下載shareSDK
申請要分享平臺的權限
這里不具體介紹
編寫代碼
相關的開發文檔API見官網:
1、添加應用信息
第一種:在ShareSDK的應用管理后臺中配置,使用此方法需要調用ShareSDK.initSDK(context,你的應用在sharesdk注冊時返回的AppKey)方法進行初始化,如果以后更改了注冊信息可以直接從網上更改,而不用重新發布新版本進行更新。(優先級最高)。
第二種:通過代碼配置“setPlatformDevInfo(String, HashMap<String, Object>)”方法,使用此方法需要調用ShareSDK.init(context,你的應用在sharesdk注冊時返回的AppKey)方法進行初始化。(優先級中)。
第三種:通過“assets/ShareSDK.xml”文件來配置,次方式會以明文存在,但這種方式最為簡單。(優先級最低)。
這三種方式開發者可以自行選擇,不過這三種設置方式各有區別:第一種方式可以實現“動態配置應用信息”的功能,但是一旦脫離網絡,ShareSDK可能無法運作;第三種方式是優先級最低的方式,但是它最為方便、集中;最后使用代碼設置的方式是最靈活的方式,第二種方式開發者可以在代碼里面寫死應用信息,也可以通過私有協議,從自己的服務器上動態獲取應用注冊信息,其優先級居第一種和第二種之間。
示例:下面分別舉例通(tong)過代碼和通(tong)過assets/ShareSDK.xml設置信息。
2、通過代碼進行(xing)設置
//在onCreate方法中
ShareSDK.initSDK(this, share_sdk_key);
HashMap<String,Object> hashMap = new HashMap<String, Object>();
//自定義字段,整型,用于項目中對此平臺的識別符
hashMap.put("Id","1");
//此平臺在分享列表中的位置,整型,數值越大越靠后
hashMap.put("SortId","1");
hashMap.put("AppId", wechat_appid);
hashMap.put("AppSecret", wechat_appsecret);
//填寫在微信注冊的RedirectUrl
hashMap.put("RedirectUrl", "//www.sharesdk.cn");
//是否使用客戶端進行分享
hashMap.put("ShareByAppClient", "true");
//布爾值,標記此平臺是否有效
hashMap.put("Enable", "true");
ShareSDK.setPlatformDevInfo(Wechat.NAME, hashMap);
3、通過assets/ShareSDK.xml設置
<?xml version="1.0" encoding="utf-8"?>
<DevInfor>
<!--
說明:
所有集成到您項目的平臺都應該為其在表格中填寫相對應的開發者信息,以新浪微博為例:
<SinaWeibo
Id="1"
SortId="1"
AppKey="568898243"
AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
RedirectUrl="//www.mob.com"
Enable="true" />
其中的SortId是此平臺在分享列表中的位置,由開發者自行定義,
可以是任何整型數字,數值越大越靠后
AppKey、AppSecret和RedirectUrl是您在新浪微博上注冊開發者信息和應用后得到的信息
Id是一個保留的識別符,整型,ShareSDK不使用此字段,供您在自己的項目中當作平臺的識別符。
Enable字段表示此平臺是否有效,布爾值,默認為true,如果Enable為false,即便平臺的jar包
已經添加到應用中,平臺實例依然不可獲取。
-->
<!-- 在ShareSDK上注冊的開發者帳號的AppKey -->
<ShareSDK AppKey = "cae38599aef0"/>
<!-- 微信分享 -->
<Wechat
Id="1"
SortId="1"
AppId="wechat_appid"
AppSecret="wechat_appsecret"
BypassApproval="false"
Enable="true" />
<!-- 微信-朋友圈分享 -->
<WechatMoments
Id="2"
SortId="2"
AppId="wechat_appid"
AppSecret="wechat_appsecret"
BypassApproval="false"
Enable="true" />
</DevInfor>