有时候开发者想给咱们的应用添加一个功能分享又能建立活动的功能来推广本身的应用,可是开发相似的功能对于开发者的时间成原本说太大了,不如去集成一个有这样功能的组件,如友推SDK积分组件html
注册须要分享的平台网站
该信息放置在下载包的 youtui_sdk.xml 中,请正确填写,若是你须要分享哪一个平台,能够将该平台的 Enable 属性设置为 true ,填写完成后将 youtui_sdk.xml 放置到 asserts 文件夹下,请不要改动该文件下标签信息,不然会形成解析xml时没法读取到该标签的内容,致使受权信息错误,该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>
在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" />
在 AndroidManifest.xml 注册须要的Activity
<!-- 微信分享须要注册该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" />
<!-- 请将xxxxxx改成本身注册的appid--> <data android:scheme="tencentxxxxxx" /> </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>
<!-- 友推渠道号,应用名(英文或拼音)+"_yt",如:“jd_yt”,用于识别经过友推下载的应用,请正确填写不然没法正确统计 --> <meta-data android:name="YOUTUI_CHANNEL" android:value="yourappname_yt" > </meta-data>
初始化友推
开发者请在本身的程序开始,最好是在MainActivity的onCreate方法调用YouTui.init(activity)初始化友推sdk,这样友推sdk才能进行后续调用,例如:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
YouTui.init(this);/*初始化友推*/
initView(); }
建立 ShareData 实例,调用该实例的set方法设置须要分享的数据:
建立ShareData实例,调用该实例的set方法设置本身须要分享的数据,关于该实例具体内容见下文,若是只是分享应用则只须要设置setIsAppShare(true) 就能够分享应用在友推后台填写的信息和下载连接。
ShareData 包含的字段:
isAppShare 判断是否为分享应用
text 待分享的文字,短信要小于70个字符,微博要小于140个字符,若是须要分享 连接,最好将连接url放在最后
imagePath 待分享的本地图片地址,分享图片的话须要在本地和网络图片中选一,若是都有则优先分享本地图片
imageUrl 待分享网络图片url,分享图片的话须要在本地和网络图片中选一,若是都有则优先分享本地图片
description 待分享内容的描述
title 待分享内容的标题
target_url 待分享内容的跳转连接
经过建立该类实例,调用实例的set方法设置这些参数,例如:
private ShareData shareData = ShareData.getInstance();
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(Environment.getExternalStorageDirectory()+YoutuiConstants.FILE_SAVE_PATH+"youtui.png");
微信和微信朋友圈
若是须要分享微信和朋友圈,必需建一个 应用包名+ .wxapi 的包,在该包下建 WXEntryActivity.java,将该类继承cn.bidaround.youtui.wxapi.WXEntryActivity便可(里面不用写代码)
public class WXEntryActivity extends cn.bidaround.youtui.wxapi.WXEntryActivity { }
如图:(将com.xingxinglangtuoche替换成你应用的package名,微信回调会使用到)
调用友推分享推荐组件
public void onClick(View v) {
if(v.getId()==R.id.popup_bt){
/*调用友推分享推荐组件,YouTuiViewType类的常量为分享样式参数,目前支持白色列表和黑色网格两种*/
/*YouTui.show新的须要传入参数hasAct,true表明须要积分活动,false表明不须要积分活动*/
YouTui.show(this, YouTuiViewType.BLACK_POPUP,false); //黑色网格样式不须要积分活动
/*YouTui.show(this, YouTuiViewType.WHITE_LIST,ture);*/ //白色列表样式须要积分活动
}
}
应用能够在后台设置分享送积分、积分兑换礼品活动,激励用户跟主动向好友分享您的应用,以及查看用户分享推荐的数据明细。
若是没有设置分享送积分活动则不会提示分享送积分活动信息,返回到基本的分享组件功能。
案例:兼职猫集成后,用户经过QQ分享给好友,点击连接进入应用简介下载页面
应用能够在后台设置推广活动及查看用户分享的明细报表。