友推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);
}
}
|