友推是一款是面向移动应用的SDK分享组件,提供给开发者集成使用。通过友推,开发者可以轻松集成社会化分享功能,同时创建及管理推荐好友使用您应用的推荐奖励活动,用户推荐好友安装使用您的应用即可获得推荐奖励,让您的应用更好地通过用户的主动推荐触达新用户。一行代码分享到微博,分享到微信,分享到QQ空间,分享到朋友圈、创建及管理您应用的推荐奖励活动。

代码片段(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);
      
    }
}

app分享代码的更多相关文章

  1. 【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新3)附高效动态压缩Bitmap

    一.写在前面 爱吖校推如同它的名字一样,是一款校园类信息推送交流平台,这么多的家校互动类软件,你选择了我,这是我的幸运.从第一次在博客园上写博客到现在,我一次一次地提高博文的质量和代码的可读性,都是为 ...

  2. android使用百度app分享,app统计出现的异常,FrontiaApplication类

    想在app里加入百度分享和百度统计.查看了百度移动统计的文档后下载官网给的demo.参照demo给出的代码给自己的app加入代码.以上步骤比较简单.不细说,下面说下此过程需要注意的一些点,不然会引发异 ...

  3. 接受第三方app分享的数据

    前段时间公司项目需要一个需求: 把第三方的app分享的数据接受到自己的apk中, 涉及到的第三方app是: Youtube/Amazon/NetFlix, 这些app通过分享功能把当前的信息分享出去. ...

  4. HTML5 App的代码注入攻击

    原文链接 摘要 基于HTML5的手机app(译者注:以下简称HTML5 app)越来越流行了, 在大多数情况下它比native应用更容易适配不同的移动操作系统.它开发起来很方便,可以使用标准的web技 ...

  5. APP分享视频H5页面

    男左女右中国APP需要做一个APP分享视频H5页面,效果图见下面的图. 出现的问题: (1)URL参数为中文的时候乱码: (2)vedio点击默认是QQ,微信的播放器: (3)给视频添加一个默认的封面 ...

  6. 页面分享代码share

    在开发一个页面的时候常常会有这么一个小功能,就是分享该页面中的信息. 常见的分享代码有百度分享,JiaThis分享插件,bshare分享插件等,我主要分享一下自定义分享代码,如下: function ...

  7. Facebook、新浪微博、Twitter、腾讯微博分享代码

    最近总结一下用到的分享代码 FaceBook分享 <a href="https://www.facebook.com/sharer/sharer.php?u=你的链接" ta ...

  8. discuz的门户文章页中增加百度分享代码

    discuz虽然有百度分享插件,但是不太想用,于是自己手动添加了百度分享代码: 一.在http://share.baidu.com/地址中申请设置自己的百度分享代码,选择的风格完全按照个人喜好进行选择 ...

  9. JS实现页面分享代码share,不需要第三方接口

    在开发一个页面的时候常常会有这么一个小功能,就是分享该页面中的信息. 常见的分享代码有百度分享,JiaThis分享插件(现在貌似不能用了),bshare分享插件等,我主要分享一下自定义分享代码,如下: ...

随机推荐

  1. Counting blessings can actually increase happiness and health by reminding us of the good things in life.

    Counting blessings can actually increase happiness and health by reminding us of the good things in ...

  2. Vue.js(2.x)之计算属性

    昨天看完大神的文章后,深感惭愧,硬着头皮继续看官网文档,然而这真的没是没办法,介绍的实在有些敷衍: 1).计算属性:也不说下computed是计算属性关键词,vm实例是可以像代理data一样代理com ...

  3. oracle中查找与已知表的数据库对象

    在此次情况中,业务顾问就给我提供了一张客户公司客户化的Form,然后让找出界面上的数据是怎样生成的. 首先我们从EBS form 界面上找到了界面的数据来源于一张表ks_so_line_margin_ ...

  4. Pixel XL 刷机及Root详细方法

    需要准备的文件: 获取 Google USB 驱动程序并安装 https://developer.android.com/studio/run/win-usb 下载Google官方镜像文件 [8.1. ...

  5. python基础-字符串操作

    输出高亮 语法:   显示方式.前景色.背景色至少一个存在即可. 显示方式:0(关闭所有效果),1(高亮),4(下划线),5(闪烁),7(反色),8(不可见). 前景色以3开头,背景色以4开头,具体颜 ...

  6. uvm_reg_adapter——寄存器模型(十八)

    uvm_reg_adapter 功能就是在uvm_reg_bus_op和总线操作之间的转换.主要包含两个函数reg2bus 和bus2reg. //-------------------------- ...

  7. U盘小偷——C++实现U盘插入检测和文件扫描拷贝

    前几天女朋友说老师上课的PPT不共享,没法复习,想着写个U盘小偷拷贝PPT来着,后来觉得这样的行为这是不对的,万一不小心复制了老师的专利啥的,或者一些不可描述的东西,就闹大了. 虽然没有采取实际行动, ...

  8. iOS内存探秘

    http://www.cocoachina.com/ios/20170216/18689.html iOS 内存机制特点 有限的可用内存 iPhone 设备的 RAM 一直非常紧缺,iPhone 一代 ...

  9. Charles拦截请求

    一.通过Charles抓包,可拦截请求并篡改交互信息 1.可篡改客户端向服务器发起的请求信息(服务器收到的是假消息) 2.可篡改服务器返回给客户端的响应结果(客户端看到的是假消息) 二.篡改用户请求 ...

  10. 安装Ubuntu桌面环境后只能Guest登录的解决办法

    1.安装Ubuntu桌面环境后,登录界面只显示了Guest 2.在登录界面按住crtl+shift+F1,进入tty模式 3.输入sudo -s进入root模式 4.输入vi /etc/lightdm ...