天天看點

快速開發分享功能,一鍵分享到微網誌、微信等平台。

友推SDK是一款是面向移動應用的SDK元件,提供給開發者內建使用。

通過友推,開發者幾行代碼就可以為應用添加分享送積分功能,并提供詳盡的統計報表,除了本身具備的分享功能

外,開發者也可将積分功能單獨內建在已有分享元件的app上,讓您的應用更好地通過使用者的主動推薦觸達新使用者~

友推設計之初便是輕量級sdk元件,內建後安裝包大小增加不超過200k。

下載下傳位址:http://youtui.mobi/download/index.htm

開發文檔:http://youtui.mobi/doc/index.htm

代碼片段(10)[全屏檢視所有代碼]

1. [代碼]申請應用 AppKey     

?

1

2

3

/*如果您已經在友推添加過App并已生成AppKey,可跳過本步驟直接進入3.2繼續。

申請方法:通路友推網站背景,登入後進入應用清單,添加需要內建友推元件的 App,如下圖,添加成功後可擷取應用的 AppKey。*/

2. [代碼]申請社交平台appkey     

4

5

6

7

8

9

10

11

12

/*內建前您需要為您的應用在各大社交網站的開放平台申請賬号并通過稽核,否則隻能調用系統的分享菜單,無法跟蹤分享的回調事件及統計*/

平台                 網址

微信                  http:

//open.weixin.qq.com

新浪微網誌              http:

//open.weibo.com

騰訊微網誌              http:

//dev.t.qq.com

QQ空間、QQ            http:

//open.qq.com/

微信好友              http:

//open.weixin.qq.com

人人                  http:

//dev.renren.com

豆瓣(暫未支援)        http:

//developers.douban.com/

FaceBook(暫未支援)    https:

//developers.facebook.com

Twitter(暫未支援)     https:

//dev.twitter.com

3. [代碼]SDK 內建使用流程     

/*1.引用友推庫項目-> 2.注冊需要分享的平台 -> 3.AndroidManifest.xml注冊權限、activity ->4.初始化友推并調用

引用友推庫項目

将youtui-lib項目庫和應用工程放在同一個目錄下

在 Package Explorer 中右鍵點選工程的根目錄,選擇 Properties(屬性),然後點選,在Android選項點選Add添加youtui-lib*/

4. [代碼]注冊需要分享的平台     

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

/*1.配置各分享平台key,該配置檔案為youtui_sdk.xml,配置完放入工程的assets檔案夾。

2.如果需要分享到哪個平台就将該平台的Enable屬性設定為true.

3.如果需要将某個平台排列到前面,隻需要改變它在youtui_sdk.xml檔案中的位置即可。*/

<?xml version=

"1.0"

encoding=

"utf-8"

?>

<KeyInfo>

<!-- 分享平台的注冊資訊,一定要填入在相應平台注冊的正确資訊,不然應用無法完成授權,  也無法進行分享,enable填寫

true

或者

false

屬性決定是否分享該平台-->

<!-- 友推sdk注冊位址 : http:

//youtui.mobi/ -->

<YouTui AppKey=

""

/>

<!-- 微信和朋友圈注冊:https:

//open.weixin.qq.com/ -->

<Wechat AppId=

""

Enable=

""

/>

<WechatMoments AppId=

""

Enable=

""

/>

<!-- 新浪微網誌注冊位址:http:

//open.weibo.com/ -->

<SinaWeibo AppKey=

""

AppSecret=

""

Enable=

""

RedirectUrl=

""

/>

<!-- QQ,QQ空間,騰訊微網誌注冊位址:http:

//open.qq.com/ -->

<QQ AppId=

""

AppKey=

""

Enable=

""

/>

<QZone AppId=

""

AppKey=

""

Enable=

""

/>

<TencentWeibo AppId=

""

AppKey=

""

Enable=

""

/>

<!-- 人人注冊位址: http:

//dev.renren.com/ -->

<Renren AppKey=

""

AppId=

""

Enable=

""

SecretKey=

""

/>

<ShortMessage Enable=

""

/>

<Email Enable=

""

/>

<!-- 調用系統分享,适用于暫時沒有申請到key的分享,該分享不會獲得積分,也不會被統計到 -->

<More Enable=

"true"

/>

</KeyInfo>

5. [代碼]注冊權限     

/*在AndroidManifest.xml 注冊權限*/

<!-- 檢測網絡狀态 -->

<uses-permission android:name=

"android.permission.ACCESS_NETWORK_STATE"

/>

<!-- 擷取mac位址作為使用者的備用唯一辨別 -->

<uses-permission android:name=

"android.permission.ACCESS_WIFI_STATE"

/>

<!-- 擷取使用者手機的IMEI,用來唯一的辨別使用者。 -->

<uses-permission android:name=

"android.permission.READ_PHONE_STATE"

/>

<!-- 寫入SDcard權限 -->

<uses-permission android:name=

"android.permission.WRITE_EXTERNAL_STORAGE"

/>

<!--打開關閉sd卡權限--!>

<uses-permission android:name=

"android.permission.MOUNT_UNMOUNT_FILESYSTEMS"

/>

<!--網絡權限--!>

<uses-permission android:name=

"android.permission.INTERNET"

/>

<!-- 用于讀取sd卡圖檔 -->

<uses-permission android:name=

"android.permission.READ_EXTERNAL_STORAGE"

/>

<!-- 用于人人SSO登陸 -->

<uses-permission android:name=

"android.permission.GET_ACCOUNTS"

/>

<!-- 用于人人SSO登陸 -->

<uses-permission android:name=

"android.permission.USE_CREDENTIALS"

/>

<!-- 用于人人SSO登陸 -->

<uses-permission android:name=

"android.permission.MANAGE_ACCOUNTS"

/>

6. [代碼]在 AndroidManifest.xml 注冊需要的Activity     

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

<!-- 微信分享需要注冊該activity -->

<activity

android:name=

".wxapi.WXEntryActivity"

android:exported=

"true"

android:launchMode=

"singleTask"

android:theme=

"@android:style/Theme.Translucent"

>

</activity>

<!-- qq回調需要注冊該activity -->

<activity

android:name=

"com.tencent.connect.common.AssistActivity"

android:configChanges=

"orientation|keyboardHidden"

android:screenOrientation=

"portrait"

android:theme=

"@android:style/Theme.Translucent.NoTitleBar"

/>

<!-- qq授權需要注冊該activity -->

<activity

android:name=

"com.tencent.tauth.AuthActivity"

android:launchMode=

"singleTask"

android:noHistory=

"true"

>

<intent-filter>

<action android:name=

"android.intent.action.VIEW"

/>

<category android:name=

"android.intent.category.DEFAULT"

/>

<category android:name=

"android.intent.category.BROWSABLE"

/>

<!-- 請将

1101255276

換成開發者自己應用的騰訊開放平台 Appid-->

<data android:scheme=

"tencent1101255276"

/>

</intent-filter>

</activity>

<!-- 人人授權需要注冊的activity -->

<activity

android:name=

"com.renn.rennsdk.oauth.OAuthActivity"

android:configChanges=

"orientation|navigation|keyboardHidden"

/>

<!-- 新浪微網誌分享回調需要設定 -->

<intent-filter>

<action android:name=

"com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY"

/>

<category android:name=

"android.intent.category.DEFAULT"

/>

</intent-filter>

</activity>

<!-- 分享界面 -->

<activity

android:name=

"cn.bidaround.ytcore.activity.ShareActivity"

android:exported=

"true"

android:launchMode=

"singleTop"

android:theme=

"@android:style/Theme.Translucent.NoTitleBar"

/>

<!-- 應用授權 activity-->

<activity

android:name=

"cn.bidaround.ytcore.login.AuthActivity"

android:theme=

"@android:style/Theme.Translucent.NoTitleBar"

/>

<!-- 友推積分activity -->

<activity

android:name=

"cn.bidaround.point.PointActivity"

/>

<!-- 友推管道号,應用名(英文或拼音)+

"_yt"

,如:“jd_yt”,用于識别通過友推下載下傳的應用,請正确填寫否則無法正确統計 -->

<meta-data

android:name=

"YOUTUI_CHANNEL"

android:value=

"yourappname_yt"

>

</meta-data>

7. [代碼]微信和朋友圈回調設定      

/*如果需要分享微信和朋友圈,必需建一個 應用包名+ .wxapi 的包,在該包下建 WXEntryActivity.java,将該類繼承cn.bidaround.youtui.wxapi.WXEntryActivity即可(裡面不用寫代碼)*/

public

class

WXEntryActivity

extends

cn.bidaround.youtui.wxapi.WXEntryActivity {

}

8. [代碼]初始化友推     

/*開發者請在自己的程式開始,最好是在MainActivity的onCreate方法調用YtTemplate.init(this)初始化友推sdk,這樣友推sdk才能進行後續調用(否則分享等操作會出現空指針異常),例如:*/

protected

void

onCreate(Bundle savedInstanceState) {

super

.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

YtTemplate.init(

this

);

/*初始化友推*/

initView();

}

/*應用退出時:

在您項目的出口Activity的 onDestroy 方法的第一行插入下面的代碼 YtTemplate.release(this); 此方法用于釋放記憶體,統計使用者使用情況,一旦調用了release,就必須重新調用init才能使用友推的功能,否則會出現空指針異常;*/

9. [代碼]建立ShareData執行個體     

調用該執行個體的set方法設定自己需要分享的資料,關于該執行個體具體内容見下文,如果隻是分享應用則隻需要設定 setIsAppShare(

true

) 就可以分享應用在友推背景填寫的資訊和下載下傳連結。

ShareData 包含的字段:

"isAppShare"

"text"

"imagePath"

"imageUrl"

"description"

"title"

"target_url"

/*判斷是否為分享應用

待分享的文字,短信要小于70個字元,微網誌要小于140個字元,如果需要分享連結,最好将連結url放在最後

待分享的本地圖檔位址,分享圖檔的話需要在本地和網絡圖檔中選一,如果都有則優先分享本地圖檔

待分享網絡圖檔url,分享圖檔的話需要在本地和網絡圖檔中選一,如果都有則優先分享本地圖檔

待分享内容的描述

待分享内容的标題

待分享内容的跳轉連結*/

通過建立該類執行個體,調用執行個體的set方法設定這些參數,例如:

ShareData shareData =

new

ShareData();

shareData.isAppShare =

false

;

/*設定為true則分享的資訊從友推背景填寫的應用資訊中讀取,可動态更新,後面的值不用設定。*/

shareData.setDescription(

"友推積分元件"

);

shareData.setTitle(

"友推分享"

);

shareData.setText("通過友推積分元件,開發者幾行代碼就可以為應用添加分享送積分功能,并提供詳盡的

背景統計資料,除了本身具備的分享功能外,開發者也可将積分功能單獨內建在已有分享元件的app上,快來試

試吧 http:

//youtui.mobi");

shareData.setTarget_url(

"http://youtui.mobi"

);

shareData.setImageUrl(

"http://youtui.mobi/media/image/youtui.png"

);

shareData.setImagePath(

"http://cdnup.b0.upaiyun.com/media/image/default.png"

);

10. [代碼]調用友推分享推薦元件     

public

void

onClick(View v) {

if

(v.getId()==R.id.popup_bt){

/*調用友推分享推薦元件,YouTuiViewType類的常量為分享樣式參數,目前支援白色清單和黑色網格兩種*/

/*建立分享的模闆,第一個參數為activity,第二個參數為分享視窗樣式,第三個參數為是否需要積分*/

YtTemplate blackTemp =

new

YtTemplate(

this

, YouTuiViewType.BLACK_POPUP,

false

); 

//黑色網格樣式不需要積分活動

/*YtTemplate blackTemp = new YtTemplate(this, YouTuiViewType.WHITE_LIST,ture);*/

//白色清單樣式需要積分活動

ShareData shareData =

new

ShareData();

shareData.isAppShare =

false

;

//設定為true則分享的資訊從友推背景填寫的應用資訊中讀取,可動态更新後面的值不用設定。

shareData.setDescription(

"友推積分元件"

);

shareData.setTitle(

"友推分享"

);

shareData.setText(

"通過友推積分元件,開發者幾行代碼就可以為應用添加分享送積分功能,并提供詳盡的背景統計資料,除了本身具備的分享功能外,開發者也可将積分功能單獨內建在已有分享元件的app上,快來試試吧 http://youtui.mobi"

);

shareData.setTarget_url(

"http://youtui.mobi"

);

shareData.setImageUrl(

"http://youtui.mobi/media/image/youtui.png"

);

shareData.setImagePath(

"http://cdnup.b0.upaiyun.com/media/image/default.png"

);

blackTemp.setShareData(shareData);

//設定預設的分享資料;shareData 設定參看4.6

//**如果要為某個平台設定不一樣的分享資訊。則單獨設定*/

//blackTemp.addData(YtPlatform.PLATFORM_QQ, shareData);

//調出分享視窗

blackTemp.show();

//如果需要自定義分享事件,可以建立監聽事件,然後在回調中處理

YtShareListener listener1 =

new

YtShareListener() {        

@Override

public

void

onSuccess(ErrorInfo arg0) {

}

@Override

public

void

onPreShare() {

}

@Override

public

void

onError(ErrorInfo arg0) {

}

@Override

public

void

onCancel() {

}

};

//給新浪微網誌添加分享監聽

blackTemp.addListener(YtPlatform.PLATFORM_SINAWEIBO, listener1);

//給QQ添加分享監聽

//blackTemp.addListener(YtPlatform.PLATFORM_QQ, listener2);

}

}

繼續閱讀