友推SDK是一款是面向移動應用的SDK組件,提供給開發者集成使用。
經過友推,開發者幾行代碼就能夠爲應用添加分享送積分功能,並提供詳盡的統計報表,除了自己具有的分享功能
外,開發者也可將積分功能單獨集成在已有分享組件的app上,讓您的應用更好地經過用戶的主動推薦觸達新用戶~
友推設計之初即是輕量級sdk組件,集成後安裝包大小增長不超過200k。
下載地址:http://youtui.mobi/download/index.htm
開發文檔:http://youtui.mobi/doc/index.htm
java
1
2
3
|
/*若是您已經在友推添加過App並已生成AppKey,可跳過本步驟直接進入3.2繼續。
申請方法:訪問友推網站後臺,登陸後進入應用列表,添加須要集成友推組件的 App,以下圖,添加成功後可獲取應用的 AppKey。*/
|
1
2
3
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
|
1
2
3
4
5
6
7
|
/*1.引用友推庫項目-> 2.註冊須要分享的平臺 -> 3.AndroidManifest.xml註冊權限、activity ->4.初始化友推並調用
引用友推庫項目
將youtui-lib項目庫和應用工程放在同一個目錄下
在 Package Explorer 中右鍵點擊工程的根目錄,選擇 Properties(屬性),而後點擊,在Android選項點擊Add添加youtui-lib*/
|
1
2
3
4
5
6
7
8
9
10
11
12
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>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
/*在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"
/>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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>
|
1
2
3
4
|
/*若是須要分享微信和朋友圈,必需建一個 應用包名+ .wxapi 的包,在該包下建 WXEntryActivity.java,將該類繼承cn.bidaround.youtui.wxapi.WXEntryActivity便可(裏面不用寫代碼)*/
public
class
WXEntryActivity
extends
cn.bidaround.youtui.wxapi.WXEntryActivity {
}
|
1
2
3
4
5
6
7
8
9
10
11
|
/*開發者請在本身的程序開始,最好是在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才能使用友推的功能,不然會出現空指針異常;*/
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
調用該實例的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"
);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
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);
}
}
|