大家好,欢迎来到IT知识分享网。
社会化分享是目前必学且火热的功能。之前有写第三方登录,那只是社会化分享的一部分。今天来玩玩分享微信朋友圈。
为了方便操作,还是按照步骤写。
一,注册
注册应用已经在这里详细说明过了,这里就不多提了。
二,在微信开放平台中授权开发者身份,以及注册应用
链接:https://open.weixin..com/ 进入管理中心 提交个人(公司)资料注册开发者信息(需要审核等待),通过后再创建移动应用(确保Package和Appname的一致性)之后拿到应用的AppId和Appsecret
三,开始集成
下载友盟SDK:http://dev.umeng.com/social/android/sdk-download 选择需要用到的平台以及导入方式 然后将Lib导入项目(也可以通过SDKIntegration.jar生成Lib)
接着在AndroidManifest.xml中注册如下信息:
<!-- 友盟Appkey --> <meta-data android:name="UMENG_APPKEY" android:value="55ab020d67e58efe6" /> <activity android:name="com.umeng.socialize.view.ShareActivity" android:configChanges="orientation|keyboard" android:launchMode="singleTask" android:noHistory="true" android:theme="@style/Theme.UMDialog" android:windowSoftInputMode="stateVisible|adjustResize" /> <activity android:name="com.dengyy.demos_dyy.wxapi.WXEntryActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" />
加入权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- renren sso Permission for Unit Test --> <!-- 、空间所需权限 --> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.SET_DEBUG_APP" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
之后在Activity
// 首先在您的Activity中添加如下成员变量
mController = UMServiceFactory.getUMSocialService("com.umeng.share");
// 设置分享内容
mController.setShareContent(content_et.getText().toString());
// 设置分享图片, 参数2为图片的url地址
mController.setShareMedia(new UMImage(SocialSharingActivity.this,R.drawable.ic_launcher));
mController.setShareBoardListener(new UMShareBoardListener() {
@Override
public void onShow() {
isShow = true;
}
@Override
public void onDismiss() {
isShow = false;
}
});
// 设置分享图片,参数2为本地图片的资源引用
// mController.setShareMedia(new UMImage(getActivity(),
// R.drawable.icon));
// 设置分享图片,参数2为本地图片的路径(绝对路径)
// mController.setShareMedia(new UMImage(getActivity(),
// BitmapFactory.decodeFile("/mnt/sdcard/icon.png")));
// 设置分享音乐
// UMusic uMusic = new
// UMusic("http://sns.whalecloud.com/test_music.mp3");
// uMusic.setAuthor("GuGu");
// uMusic.setTitle("天籁之音");
// 设置音乐缩略图
// uMusic.setThumb("http://www.umeng.com/images/pic/banner_module_social.png");
// mController.setShareMedia(uMusic);
// 设置分享视频
// UMVideo umVideo = new UMVideo(
// "http://v.youku.com/v_show/id_XNTE5ODAwMDM2.html?f=19001023");
// 设置视频缩略图
// umVideo.setThumb("http://www.umeng.com/images/pic/banner_module_social.png");
// umVideo.setTitle("友盟社会化分享!");
// mController.setShareMedia(umVideo);
initWeiXin();
initWeiXinPY();
initWeiXin和initWeiXinPY方法:
/ * 微信支持纯文字,纯图片(点击查看大图),图文,音乐,视频分享。SSO设置 */ private void initWeiXin() { String appID = "你在微信开放平台注册应用id"; String appSecret = "你在微信开放平台注册应用Secret"; // 添加微信平台 UMWXHandler wxHandler = new UMWXHandler(SocialSharingActivity.this, appID, appSecret); // 设置Title wxHandler.setTitle("title!"); // 设置分享内容 mController.setShareContent(content_et.getText().toString()); // 设置URL wxHandler.setTargetUrl("http://weixin..com/"); wxHandler.addToSocialSDK(); } / * 朋友圈支持纯文字,纯图片(点击查看大图),图文,音乐,视频分享。SSO设置 */ private void initWeiXinPY() { String appID = "你在微信开放平台注册应用id"; String appSecret = "你在微信开放平台注册应用Secret"; // 添加微信朋友圈 UMWXHandler wxCircleHandler = new UMWXHandler(SocialSharingActivity.this, appID, appSecret); // 设置Title wxCircleHandler.setTitle("title!"); // 设置分享内容 mController.setShareContent(content_et.getText().toString()); // 设置URL wxCircleHandler.setTargetUrl("http://weixin..com/"); wxCircleHandler.setToCircle(true); wxCircleHandler.addToSocialSDK(); }
打开分享选项页:
// 是否只有已登录用户才能打开分享选择页 mController.openShare(SocialSharingActivity.this, false);
设置分享回调:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); / 使用SSO授权必须添加如下代码 */ UMSsoHandler ssoHandler = mController.getConfig().getSsoHandler(requestCode); if (ssoHandler != null) { ssoHandler.authorizeCallBack(requestCode, resultCode, data); } }
为了方便理解,我将整个activity代码贴出来:
package com.dengyy.demos_dyy.social_sharing_demo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import com.dengyy.demos_dyy.R;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.controller.UMServiceFactory;
import com.umeng.socialize.controller.UMSocialService;
import com.umeng.socialize.controller.listener.SocializeListeners.UMShareBoardListener;
import com.umeng.socialize.media.ShareContent;
import com.umeng.socialize.media.QZoneShareContent;
import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.sso.QZoneSsoHandler;
import com.umeng.socialize.sso.SinaSsoHandler;
import com.umeng.socialize.sso.TencentWBSsoHandler;
import com.umeng.socialize.sso.UMSsoHandler;
import com.umeng.socialize.sso.UMSsoHandler;
import com.umeng.socialize.weixin.controller.UMWXHandler;
/
* Created by dyy on 2015/7/18.
*/
public class SocialSharingActivity extends Activity {
private Button go_btn;
private EditText content_et;
private UMSocialService mController;
private boolean isShow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.social_sharing_activity);
go_btn = (Button) findViewById(R.id.go_btn);
content_et = (EditText) findViewById(R.id.content_et);
initData();
mController.getConfig().removePlatform(SHARE_MEDIA.RENREN, SHARE_MEDIA.DOUBAN);
go_btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 是否只有已登录用户才能打开分享选择页
mController.openShare(SocialSharingActivity.this, false);
}
});
}
private void initData() {
// 首先在您的Activity中添加如下成员变量
mController = UMServiceFactory.getUMSocialService("com.umeng.share");
// 设置分享内容
mController.setShareContent(content_et.getText().toString());
// 设置分享图片, 参数2为图片的url地址
mController.setShareMedia(new UMImage(SocialSharingActivity.this,R.drawable.ic_launcher));
mController.setShareBoardListener(new UMShareBoardListener() {
@Override
public void onShow() {
isShow = true;
}
@Override
public void onDismiss() {
isShow = false;
}
});
// 设置分享图片,参数2为本地图片的资源引用
// mController.setShareMedia(new UMImage(getActivity(),
// R.drawable.icon));
// 设置分享图片,参数2为本地图片的路径(绝对路径)
// mController.setShareMedia(new UMImage(getActivity(),
// BitmapFactory.decodeFile("/mnt/sdcard/icon.png")));
// 设置分享音乐
// UMusic uMusic = new
// UMusic("http://sns.whalecloud.com/test_music.mp3");
// uMusic.setAuthor("GuGu");
// uMusic.setTitle("天籁之音");
// 设置音乐缩略图
// uMusic.setThumb("http://www.umeng.com/images/pic/banner_module_social.png");
// mController.setShareMedia(uMusic);
// 设置分享视频
// UMVideo umVideo = new UMVideo(
// "http://v.youku.com/v_show/id_XNTE5ODAwMDM2.html?f=19001023");
// 设置视频缩略图
// umVideo.setThumb("http://www.umeng.com/images/pic/banner_module_social.png");
// umVideo.setTitle("友盟社会化分享!");
// mController.setShareMedia(umVideo);
initWeiXin();
initWeiXinPY();
init();
initZone();
}
//隐藏分享面板
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// if(isShow && keyCode == KeyEvent.KEYCODE_BACK){
// mController.dismissShareBoard();
// return true;
// }
// return isShow;
// }
/
* 微信支持纯文字,纯图片(点击查看大图),图文,音乐,视频分享。SSO设置
*/
private void initWeiXin() {
String appID = "appID";
String appSecret = "appSecret";
// 添加微信平台
UMWXHandler wxHandler = new UMWXHandler(SocialSharingActivity.this, appID, appSecret);
// 设置Title
wxHandler.setTitle("title!");
// 设置分享内容
mController.setShareContent(content_et.getText().toString());
// 设置URL
wxHandler.setTargetUrl("http://weixin..com/");
wxHandler.addToSocialSDK();
}
/
* 朋友圈支持纯文字,纯图片(点击查看大图),图文,音乐,视频分享。SSO设置
*/
private void initWeiXinPY() {
String appID = "appID";
String appSecret = "appSecret";
// 添加微信朋友圈
UMWXHandler wxCircleHandler = new UMWXHandler(SocialSharingActivity.this, appID, appSecret);
// 设置Title
wxCircleHandler.setTitle("title!");
// 设置分享内容
mController.setShareContent(content_et.getText().toString());
// 设置URL
wxCircleHandler.setTargetUrl("http://weixin..com/");
wxCircleHandler.setToCircle(true);
wxCircleHandler.addToSocialSDK();
}
/
* SSO设置
*/
private void init() {
// 参数1为当前Activity,参数2为开发者在互联申请的APP ID,参数3为开发者在互联申请的APP kEY.
UMSsoHandler SsoHandler = new UMSsoHandler(SocialSharingActivity.this, "APP ID", "APP kEY");
SsoHandler.addToSocialSDK();
ShareContent ShareContent = new ShareContent();
ShareContent.setShareContent(content_et.getText().toString());
ShareContent.setTitle("title!");
ShareContent.setShareImage(new UMImage(SocialSharingActivity.this, R.drawable.ic_launcher));
ShareContent.setTargetUrl("http://www..com/");
mController.setShareMedia(ShareContent);
}
/
* 空间SSO设置
*/
private void initZone() {
// 参数1为当前Activity,参数2为开发者在互联申请的APP ID,参数3为开发者在互联申请的APP kEY.
QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(SocialSharingActivity.this, "APP ID", "APP kEY");
qZoneSsoHandler.setTargetUrl("http://www..com/");
qZoneSsoHandler.addToSocialSDK();
QZoneShareContent QZoneShareContent = new QZoneShareContent();
QZoneShareContent.setTitle("title!");
QZoneShareContent.setShareContent(content_et.getText().toString());
QZoneShareContent.setShareImage(new UMImage(SocialSharingActivity.this, R.drawable.ic_launcher));
QZoneShareContent.setTargetUrl("http://www..com/");
mController.setShareMedia(QZoneShareContent);
}
/
* 新浪微博SSO设置
*/
private void initSina() {
// 设置新浪SSO handler
mController.getConfig().setSsoHandler(new SinaSsoHandler());
}
/
* 腾讯微博SSO设置
*/
private void initTentenWB() {
// 设置腾讯微博SSO handler
mController.getConfig().setSsoHandler(new TencentWBSsoHandler());
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/ 使用SSO授权必须添加如下代码 */
UMSsoHandler ssoHandler = mController.getConfig().getSsoHandler(requestCode);
if (ssoHandler != null) {
ssoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
}
到了这里,基本通过友盟SDK实现了社会化分享功能。
运行效果:http://wap.youshixiu.com/video/play/
如果想知道关于新浪微博,人人网等其他渠道分享和登录的话,可以查阅友盟官方文档:http://dev.umeng.com/social/android/quick-integration
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/158989.html