友推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

?
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

3. [代码]SDK 集成使用流程

?
1
2
3
4
5
6
7
/*1.引用友推库项目-> 2.注册需要分享的平台 -> 3.AndroidManifest.xml注册权限、activity ->4.初始化友推并调用
引用友推库项目
将youtui-lib项目库和应用工程放在同一个目录下
在 Package Explorer 中右键点击工程的根目录,选择 Properties(属性),然后点击,在Android选项点击Add添加youtui-lib*/

4. [代码]注册需要分享的平台

?
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>

5. [代码]注册权限

?
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" />

6. [代码]在 AndroidManifest.xml 注册需要的Activity

?
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>

7. [代码]微信和朋友圈回调设置

?
1
2
3
4
/*如果需要分享微信和朋友圈,必需建一个 应用包名+ .wxapi 的包,在该包下建 WXEntryActivity.java,将该类继承cn.bidaround.youtui.wxapi.WXEntryActivity即可(里面不用写代码)*/
public class WXEntryActivity extends cn.bidaround.youtui.wxapi.WXEntryActivity {
}

8. [代码]初始化友推

?
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才能使用友推的功能,否则会出现空指针异常;*/

9. [代码]创建ShareData实例

?
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" );

10. [代码]调用友推分享推荐组件

?
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);
     
     }
}

转载于:https://www.cnblogs.com/bidaround/p/3914075.html

快速开发分享功能,一键分享到微博、微信等平台。相关推荐

  1. 微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈

    微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈 导语: 微信分享在手机右上角的三个点一键分享就ok了,那么对于分享到朋友圈,分享给朋友是怎么实现的呢?对于那种活动分享送流量是怎么定位分享 ...

  2. 开发社交聊天APP需要注意什么?如何快速开发聊天功能

    随着互联网的发展,人们的沟通方式也在悄悄发生变化,由原来的面对面沟通,发展为网上沟通.让大家日常生活的通讯越来越方便了,各种APP层出不穷.那么,想开发一款社交聊天并进行运营,需要注意哪些方面?如何快 ...

  3. UNIAPP实战项目笔记28 商品分享功能点分享按钮分享到微信好友

    UNIAPP实战项目笔记28 商品分享功能点分享按钮分享到微信好友 detail.vue 加生命周期 // 点击分享onNavigationBarButtonTap(e) {if(e.type===' ...

  4. mui实现分享功能_MUI 分享功能(微信、QQ 、朋友圈)

    配置文件:manifest.json plus ->plugins 下边 "share": {/*配置应用使用分享功能,参考http://ask.dcloud.net.cn/ ...

  5. Cocos Creator微信小游戏分享功能以及分享回调奖励

    关于分享功能,微信官方的api也写的很清楚了,不过·注意不要和onShareAppMessage混在一起,那玩意是监听右上角的不是自己设置地方的 wx.shareAppMessage({title: ...

  6. 调用android自带分享功能,分享图片文字等信息。

    /*** 调用系统的分享功能* Created by admin on 15-4-13.*/ publicclass ShareActivity extendsActivity {@Overridep ...

  7. 在uniapp中实现微信分享功能(分享给好友+朋友圈+收藏)

    前言: 我们现在微信开发者工具中启动项目,我们点击三个点点就是进行调取下方分享界面,在开始的时候显示如下:是没有权限去分享的 方法: 一.在common下新建share.js公共的js文件,方便可以在 ...

  8. 微信公众号-- 微信分享功能(分享到朋友和朋友圈显示图片和简介)

    1.效果图对比 2.之前踩过的坑 页面设置一个隐藏的图片,宽高都是300像素,微信就会抓取这张图片做为分享图片 链接:https://blog.csdn.net/aoshilang2249/artic ...

  9. 《微信公众平台开发最佳实践》—— 1.3 微信公众平台的使用

    本节书摘来异步社区<微信公众平台开发最佳实践>一书中的第1章,第1.3节,作者:方倍工作室,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.3 微信公众平台的使 ...

  10. 微信公众平台开发(PHP)(二) 微信公众平台示例代码分析

    一.摘要 微信公众平台提供了一个简单的php示例代码,在做进一步开发之前,我们有必要将其详细了解一下. 二.获取代码 微信官网:http://mp.weixin.qq.com/mpres/htmled ...

最新文章

  1. PyTorch在64位Windows下的Conda包
  2. 【建议】如何优雅的提问?
  3. Nginx常用功能配置及优化
  4. POJ - 1958 Strange Towers of Hanoi(线性dp)
  5. java比赛题目_【蓝桥杯2016第七届比赛题目】JAVA A组
  6. log加时间 securecrt_SecureCRT配置自动记录日志
  7. 激光slam_激光SLAM与视觉SLAM的特点
  8. 测试助手健康 Test-AssistantHealth failed for server
  9. DB2 SQLSTATE 消息
  10. 通过系统架构设计师考试的一点经验(2019年软考)+学习资料下载
  11. 中国象棋棋谱大全之一
  12. Day2--安装MediaWiki搭建自己的个人百科
  13. Python如何使用Continue语句?用法示例
  14. 结构思考力-读书笔记
  15. 云防护当道,如何绕过云防护来进行渗透测试
  16. SAAS平台的基础,构建多租户系统的思考
  17. 五年工作经验总结 16 条的代码规范
  18. 35页智慧安防小区管控系统 解决方案
  19. python小玩意——猜数字游戏
  20. 0.618法C语言编程,c语言编程题--0.618法求最小值

热门文章

  1. OpenCV框架与图像插值算法
  2. 怎样用计算机传输文件,如何在两台电脑之间传输几百G的文件?教你一招
  3. 单元格的边框没有被显示出来
  4. ngx-datatable的使用
  5. 本地如何内网穿透映射外网
  6. [C#入门] 函数 | 方法
  7. 京东云视频云全面支持AVS2标准
  8. 深入浅出C指针,细节之处见真章,拒绝一切无病呻吟!!!
  9. java的mergesort函数_归并排序 - Algorithms, Part I, week 3 MERGESORTS
  10. 【网上商城优惠活动】