如何快速开发分享功能
有时候开发者想给我们的应用添加一个功能分享又能创建活动的功能来推广自己的应用,但是开发类似的功能对于开发者的时间成本来说太大了,不如去集成一个有这样功能的组件,如友推SDK积分组件
第二步
-
1
注册需要分享的平台
该信息放置在下载包的 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>
-
2
在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" />
-
3
在 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>
END
第三步
-
1
初始化友推
开发者请在自己的程序开始,最好是在MainActivity的onCreate方法调用YouTui.init(activity)初始化友推sdk,这样友推sdk才能进行后续调用,例如:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
YouTui.init(this);/*初始化友推*/
initView(); }
-
2
创建 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");
-
3
微信和微信朋友圈
如果需要分享微信和朋友圈,必需建一个 应用包名+ .wxapi 的包,在该包下建 WXEntryActivity.java,将该类继承cn.bidaround.youtui.wxapi.WXEntryActivity即可(里面不用写代码)
public class WXEntryActivity extends cn.bidaround.youtui.wxapi.WXEntryActivity { }
如图:(将com.xingxinglangtuoche替换成你应用的package名,微信回调会使用到)
-
4
调用友推分享推荐组件
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);*/ //白色列表样式需要积分活动
}
}
-
5
应用可以在后台设置分享送积分、积分兑换礼品活动,激励用户跟主动向好友分享您的应用,以及查看用户分享推荐的数据明细。
-
6
如果没有设置分享送积分活动则不会提示分享送积分活动信息,返回到基本的分享组件功能。
案例:兼职猫集成后,用户通过QQ分享给好友,点击链接进入应用简介下载页面
-
7
应用可以在后台设置推广活动及查看用户分享的明细报表。