首页 > 代码库 > 贡献一个社交分享的SDK(可以截屏分享)

贡献一个社交分享的SDK(可以截屏分享)


这款SDK可以实现分享到各大主流社交平台的功能,分享图片+文字+连接,还可以截屏分享。其中包含分享积分功能和抽奖功能。

分享组件

注册需要分享的平台:填入在各大社交平台申请到的appkey 

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <KeyInfo>
  3. <!-- 分享平台的注册信息,一定要填入在相应平台注册的正确信息,不然应用无法完成授权,  也无法进行分享,enable填写true或者false属性决定是否分享该平台-->
  4. <!-- 友推sdk注册地址 : http://youtui.mobi/ -->
  5. <YouTui AppKey="" />
  6. <!-- 微信和朋友圈注册:https://open.weixin.qq.com/ -->
  7. <Wechat AppId="" Enable="" />
  8. <WechatMoments AppId="" Enable="" />
  9. <!-- 新浪微博注册地址:http://open.weibo.com/ -->
  10. <!-- IsNoKeyShare属性,如果开发者没有新浪微博的key但是希望能使用新浪微博的分享功能,可以将IsNoKeyShare设置为true,这样就不需要设置AppKey,AppSecret,RedirectUrl而是使用友推默认的新浪注册信息 -->
  11. <!-- IsWebShare设置为true则使用web分享而不是使用默认的调用新浪微博客户端进行分享,有用户在小米等机型下调用新浪微博客户端进行分享时无法获得授权,这样的话请使用web方式进行分享 -->
  12. <SinaWeibo IsNoKeyShare="" IsWebShare="" AppKey="" AppSecret="" Enable="" RedirectUrl="" />
  13. <!-- QQ,QQ空间,腾讯微博注册地址:http://open.qq.com/ -->
  14. <QQ AppId="" AppKey="" Enable="" />
  15. <QZone AppId="" AppKey="" Enable="" />
  16. <!-- 腾讯微博注册地址:http://dev.t.qq.com/ -->
  17. <!-- IsNoKeyShare属性,如果开发者没有腾讯微博的key但是希望能使用腾讯微博的分享功能,可以将IsNoKeyShare设置为true,这样就不需要设置AppKey,AppSecret,RedirectUrl而是使用友推默认的腾讯微博注册信息 -->
  18. <TencentWeibo IsNoKeyShare="" AppKey="" AppSecret="" Enable="" RedirectUrl="" />
  19. <!-- 人人注册地址: http://dev.renren.com/ -->
  20. <Renren AppKey="" AppId="" Enable="" SecretKey="" />
  21. <ShortMessage Enable="" />
  22. <Email Enable="" />
  23. <!-- 复制链接 -->
  24. <CopyLink Enable="true"/>
  25. <!-- 调用系统分享,适用于暂时没有申请到key的分享,该分享不会获得积分,也不会被统计到 -->
  26. <More Enable="true"/>
  27. </KeyInfo>
复制代码


在AndroidManifest.xml 注册权限: 

  1. <!-- 检测网络状态 -->
  2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  3. <!-- 获取mac地址作为用户的备用唯一标识 -->
  4. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  5. <!-- 获取用户手机的IMEI,用来唯一的标识用户。 -->
  6. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  7. <!-- 写入SDcard权限 -->
  8. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  9. <!--打开关闭sd卡权限--!>
  10. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
  11. <!--网络权限--!>
  12. <uses-permission android:name="android.permission.INTERNET" />
  13. <!-- 用于读取sd卡图片 -->
  14. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  15. <!-- 用于人人SSO登陆 -->
  16. <uses-permission android:name="android.permission.GET_ACCOUNTS" />
  17. <!-- 用于人人SSO登陆 -->
  18. <uses-permission android:name="android.permission.USE_CREDENTIALS" />
  19. <!-- 用于人人SSO登陆 -->
  20. <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
复制代码


在 AndroidManifest.xml 注册需要的Activity:

  1. <!-- 微信分享需要注册该activity -->
  2. <activity
  3. android:name=".wxapi.WXEntryActivity"
  4. android:exported="true"
  5. android:launchMode="singleTask"
  6. android:theme="@android:style/Theme.Translucent" >
  7. </activity>
  8. <!-- qq回调需要注册该activity -->
  9. <activity
  10. android:name="com.tencent.connect.common.AssistActivity"
  11. android:configChanges="orientation|keyboardHidden"
  12. android:screenOrientation="portrait"
  13. android:theme="@android:style/Theme.Translucent.NoTitleBar" />
  14. <!-- qq授权需要注册该activity -->
  15. <activity
  16. android:name="com.tencent.tauth.AuthActivity"
  17. android:launchMode="singleTask"
  18. android:noHistory="true" >
  19. <intent-filter>
  20. <action android:name="android.intent.action.VIEW" />
  21. <category android:name="android.intent.category.DEFAULT" />
  22. <category android:name="android.intent.category.BROWSABLE" />
  23. <!-- 请将1101255276换成开发者自己应用的腾讯开放平台 Appid-->
  24. <data android:scheme="tencent1101255276" />
  25. </intent-filter>
  26. </activity>
  27. <!-- 人人授权需要注册的activity -->
  28. <activity
  29. android:name="com.renn.rennsdk.oauth.OAuthActivity"
  30. android:configChanges="orientation|navigation|keyboardHidden" />
  31. <!-- 分享界面 -->
  32. <activity
  33. android:name="cn.bidaround.ytcore.activity.ShareActivity"
  34. android:exported="true"
  35. android:launchMode="singleTop"
  36. android:theme="@android:style/Theme.Translucent.NoTitleBar" />
  37. <!-- 新浪微博分享回调需要设置 -->
  38. <intent-filter>
  39. <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
  40. <category android:name="android.intent.category.DEFAULT" />
  41. </intent-filter>
  42. </activity>
  43. <!-- 应用授权 activity-->
  44. <activity
  45. android:name="cn.bidaround.ytcore.login.AuthActivity"
  46. android:theme="@android:style/Theme.Translucent.NoTitleBar" />
  47. <!-- 友推积分activity -->
  48. <activity
  49. android:name="cn.bidaround.point.PointActivity" />
  50. <!-- 截屏编辑activity -->
  51. <activity
  52. android:name="cn.bidaround.youtui_template.ScreenCapEditActivity" 
  53. android:screenOrientation="portrait" 
  54. android:theme="@android:style/Theme.Black.NoTitleBar" />
  55. <!-- 友推渠道号,应用名(英文或拼音)+"_yt",如:“jd_yt”,用于识别通过友推下载的应用,请正确填写否则无法正确统计 -->
  56. <meta-data
  57. android:name="YOUTUI_CHANNEL"
  58. android:value="http://www.mamicode.com/yourappname_yt" >
  59. </meta-data>
复制代码


设置好分享的内容: 

  1. public void onClick(View v) {
  2.     if(v.getId()==R.id.popup_bt){
  3.         /*调用友推分享推荐组件,YouTuiViewType类的常量为分享样式参数,目前支持白色列表和黑色网格两种*/
  4.         /*创建分享的模板,第一个参数为activity,第二个参数为分享窗口样式,第三个参数为是否需要积分*/
  5.         YtTemplate blackTemp = new YtTemplate(this, YouTuiViewType.WHITE_GRID,false);  //白色网格样式不需要积分活动
  6.         /*YtTemplate blackTemp = new YtTemplate(this, YouTuiViewType.WHITE_LIST,ture);*/ //白色列表样式需要积分活动
  7.         
  8.         ShareData shareData = http://www.mamicode.com/new ShareData();
  9.         shareData.isAppShare = false;//设置为true则分享的信息从友推后台填写的应用信息中读取,可动态更新后面的值不用设置。
  10.         shareData.setDescription("友推积分组件");
  11.         shareData.setTitle("友推分享");
  12.         shareData.setText("通过友推积分组件,开发者几行代码就可以为应用添加分享送积分功能,并提供详尽的后台统计数据,除了本身具备的分享功能外,开发者也可将积分功能单独集成在已有分享组件的app上,快来试试吧 http://youtui.mobi");
  13.         shareData.setTarget_url("http://youtui.mobi");
  14.         shareData.setImageUrl("http://youtui.mobi/media/image/youtui.png");
  15.         shareData.setImagePath("http://cdnup.b0.upaiyun.com/media/image/default.png");
  16.         blackTemp.setShareData(shareData);//设置默认的分享数据;shareData 设置参看4.6
  17.         //**如果要为某个平台设置不一样的分享信息。则单独设置*/
  18.         //blackTemp.addData(YtPlatform.PLATFORM_QQ, shareData);
  19.         //调出分享窗口
  20.         blackTemp.show();
  21.                 
  22.         //如果需要自定义分享事件,可以创建监听事件,然后在回调中处理
  23.         YtShareListener listener1 = new YtShareListener() {                        
  24.                 @Override
  25.                 public void onSuccess(ErrorInfo arg0) {
  26.                                 
  27.                 }
  28.                         
  29.                 @Override
  30.                 public void onPreShare() {
  31.                                 
  32.                 }
  33.                         
  34.                 @Override
  35.                 public void one rror(ErrorInfo arg0) {
  36.                                 
  37.                 }
  38.                         
  39.                 @Override
  40.                 public void onCancel() {
  41.                                 
  42.                 }
  43.         };
  44.         //给新浪微博添加分享监听
  45.         blackTemp.addListener(YtPlatform.PLATFORM_SINAWEIBO, listener1);
  46.         //给QQ添加分享监听
  47.         //blackTemp.addListener(YtPlatform.PLATFORM_QQ, listener2);
  48.         
  49.         }
  50. }
复制代码


代码太长了,没有办法全部写出,这里是教程地址

 

贡献一个社交分享的SDK(可以截屏分享)