【源代码】一键分享各个社交平台_android

来源:互联网 发布:做原油的软件 编辑:程序博客网 时间:2024/04/30 03:37

[代码] [Java]代码

?
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
1. [代码]申请应用 AppKey     
/*如果您已经在友推添加过App并已生成AppKey,可跳过本步骤直接进入3.2继续。
  
申请方法:访问友推网站后台,登录后进入应用列表,添加需要集成友推组件的 App,如下图,添加成功后可获取应用的 AppKey。*/
  
  
2. [代码]申请社交平台appkey     
/*集成前您需要为您的应用在各大社交网站的开放平台申请账号并通过审核,否则只能调用系统的分享菜单,无法跟踪分享的回调事件及统计*/
  
平台                 网址
微信                  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.AndroidManifest.xml注册权限、activity ->4.初始化友推并调用
  
引用友推库项目
  
将youtui-lib项目库和应用工程放在同一个目录下
  
在 Package Explorer 中右键点击工程的根目录,选择 Properties(属性),然后点击,在Android选项点击Add添加youtui-lib*/
  
  
4. [代码]注册需要分享的平台     
/*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. [代码]注册权限     
 /*在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     
<!-- 微信分享需要注册该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. [代码]微信和朋友圈回调设置      
  
/*如果需要分享微信和朋友圈,必需建一个 应用包名+ .wxapi 的包,在该包下建 WXEntryActivity.java,将该类继承cn.bidaround.youtui.wxapi.WXEntryActivity即可(里面不用写代码)*/
  
publicclass WXEntryActivity extendscn.bidaround.youtui.wxapi.WXEntryActivity {
}
  
  
  
8. [代码]初始化友推     
/*开发者请在自己的程序开始,最好是在MainActivity的onCreate方法调用YtTemplate.init(this)初始化友推sdk,这样友推sdk才能进行后续调用(否则分享等操作会出现空指针异常),例如:*/
  
protectedvoid onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    YtTemplate.init(this);/*初始化友推*/
    initView();
}
/*应用退出时:
  
在您项目的出口Activity的 onDestroy 方法的第一行插入下面的代码 YtTemplate.release(this); 此方法用于释放内存,统计用户使用情况,一旦调用了release,就必须重新调用init才能使用友推的功能,否则会出现空指针异常;*/
  
  
  
  
9. [代码]创建ShareData实例     
调用该实例的set方法设置自己需要分享的数据,关于该实例具体内容见下文,如果只是分享应用则只需要设置 setIsAppShare(true) 就可以分享应用在友推后台填写的信息和下载链接。
  
ShareData 包含的字段:
  
       "isAppShare"
       "text"
       "imagePath"
       "imageUrl"
       "description"
       "title"
       "target_url"
  
/*判断是否为分享应用
待分享的文字,短信要小于70个字符,微博要小于140个字符,如果需要分享链接,最好将链接url放在最后
待分享的本地图片地址,分享图片的话需要在本地和网络图片中选一,如果都有则优先分享本地图片
待分享网络图片url,分享图片的话需要在本地和网络图片中选一,如果都有则优先分享本地图片
待分享内容的描述
待分享内容的标题
待分享内容的跳转链接*/
  
通过创建该类实例,调用实例的set方法设置这些参数,例如:
  
ShareData shareData = newShareData();
  
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]  [全屏预览] 
publicvoid onClick(View v) {
    if(v.getId()==R.id.popup_bt){
        /*调用友推分享推荐组件,YouTuiViewType类的常量为分享样式参数,目前支持白色列表和黑色网格两种*/
        /*创建分享的模板,第一个参数为activity,第二个参数为分享窗口样式,第三个参数为是否需要积分*/
        YtTemplate blackTemp = newYtTemplate(this, YouTuiViewType.BLACK_POPUP,false); //黑色网格样式不需要积分活动
        /*YtTemplate blackTemp = new YtTemplate(this, YouTuiViewType.WHITE_LIST,ture);*/ //白色列表样式需要积分活动
          
    ShareData shareData = newShareData();
    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 = newYtShareListener() {        
        @Override
        publicvoid onSuccess(ErrorInfo arg0) {
                  
        }
              
        @Override
        publicvoid onPreShare() {
                  
        }
              
        @Override
        publicvoid onError(ErrorInfo arg0) {
                  
        }
              
        @Override
        publicvoid onCancel() {
                  
        }
    };
    //给新浪微博添加分享监听
    blackTemp.addListener(YtPlatform.PLATFORM_SINAWEIBO, listener1);
    //给QQ添加分享监听
    //blackTemp.addListener(YtPlatform.PLATFORM_QQ, listener2);
      
    }
}
0 0