一键分享
<这里只贴出了新浪微博,微信,朋友圈的分享功能代码片段>
/**
* 一键分享
*/
protected void showOnekeyShare() {
ShareSDK.initSDK(this);
OnekeyShare oks = new OnekeyShare();
// 关闭sso授权
oks.disableSSOWhenAuthorize();
// 分享时Notification的图标和文字 2.5.9以后的版本不调用此方法
//oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));
// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
oks.setTitle("分享的Title");
oks.setImageUrl("url");//网络图片rul
// titleUrl是标题的网络链接,仅在人人网和QQ空间使用
oks.setTitleUrl("titleUrl");
// text是分享文本,所有平台都需要这个字段
oks.setText("分享文本");
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
// oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl("url");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("comment");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite(getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl("siteUrl");
// 启动分享GUI
oks.setDialogMode();
oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() {
@Override
public void onShare(Platform platform, Platform.ShareParams paramsToShare) {
if (SinaWeibo.NAME.equals(platform.getName())) {
platform.SSOSetting(false);
// if(!platform.isValid()){
// platform.authorize();}
paramsToShare.setTitle("微博分享title");
paramsToShare.setText("微博分享text" + " " +"url");
paramsToShare.setUrl(null);
paramsToShare.setImageUrl("网络图片地址");
}
// platform.share(paramsToShare);
}
});
oks.show(this);
}
自定义分享
/**
* 自定义分享
*/
protected void showMySharedialog() {
View localView = LayoutInflater.from(context).inflate(
R.layout.dialog_share, null);
AutoUtils.auto(localView.getRootView());
ImageView img_weibo = (ImageView) localView.findViewById(R.id.img_weibo);
ImageView img_weixin = (ImageView) localView.findViewById(R.id.img_weixin);
ImageView img_pengyouquan = (ImageView) localView.findViewById(R.id.img_pengyouquan);
TextView tv_cancel = (TextView) localView.findViewById(R.id.tv_cancel);
final Dialog dialog = new Dialog(context, R.style.custom_dialog);
dialog.setContentView(localView);
dialog.getWindow().setGravity(Gravity.BOTTOM);
// 设置全屏
WindowManager windowManager = ((Activity) context).getWindowManager();
Display display = windowManager.getDefaultDisplay();
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
lp.width = display.getWidth(); // 设置宽度
dialog.getWindow().setAttributes(lp);
dialog.show();
tv_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
dialog.dismiss();
}
});
img_weibo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
ShareSDK.initSDK(context);
Platform platform_sina = ShareSDK.getPlatform(SinaWeibo.NAME);
System.out.println("platform_sina.isValid()----" + platform_sina.isValid());
if (!isAppInstalled(context, "com.sine.weibo")) {// 如果有新浪微博客户端,每次都可以重新选择或添加分享账号
platform_sina.removeAccount();
}
platform_sina.SSOSetting(true);
cn.sharesdk.sina.weibo.SinaWeibo.ShareParams sp = new cn.sharesdk.sina.weibo.SinaWeibo.ShareParams();
sp.setShareType(Platform.SHARE_TEXT);
sp.setTitle("测试分享文本测试分享文本测试分享文本");
sp.setText("测试分享文本测试分享文本测试分享文本");
// sp.setUrl(share_url);
// sp.setImageUrl(share_image);
sp.setImagePath(null);
platform_sina.setPlatformActionListener(BaseShareActivity.this); // 设置分享事件回调
// 执行图文分享
platform_sina.share(sp);
}
});
img_weixin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
if (!isAppInstalled(context, "com.tencent.mm")) {
showToast("用户未安装微信");
return;
}
//2、设置分享内容
Wechat.ShareParams sp = new Wechat.ShareParams();
sp.setShareType(Platform.SHARE_WEBPAGE);//非常重要:一定要设置分享属性
sp.setTitle("我是分享标题"); //分享标题
sp.setText("我是分享文本,啦啦啦~http://uestcbmi.com/"); //分享文本
sp.setImageUrl("http://7sby7r.com1.z0.glb.clouddn.com/CYSJ_02.jpg");//网络图片rul
sp.setUrl("http://sharesdk.cn"); //网友点进链接后,可以看到分享的详情
//3、非常重要:获取平台对象
Platform wechat = ShareSDK.getPlatform(Wechat.NAME);
wechat.setPlatformActionListener(BaseShareActivity.this); // 设置分享事件回调
// 执行分享
wechat.share(sp);
}
});
img_pengyouquan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
if (!isAppInstalled(context, "com.tencent.mm")) {
showToast("用户未安装微信");
return;
}
//2、设置分享内容
WechatMoments.ShareParams sp = new WechatMoments.ShareParams();
sp.setShareType(Platform.SHARE_WEBPAGE); //非常重要:一定要设置分享属性
sp.setTitle("我是分享标题"); //分享标题
sp.setText("我是分享文本,啦啦啦~http://uestcbmi.com/"); //分享文本
sp.setImageUrl("http://7sby7r.com1.z0.glb.clouddn.com/CYSJ_02.jpg");//网络图片rul
sp.setUrl("http://sharesdk.cn"); //网友点进链接后,可以看到分享的详情
//3、非常重要:获取平台对象
Platform wechatMoments = ShareSDK.getPlatform(WechatMoments.NAME);
wechatMoments.setPlatformActionListener(BaseShareActivity.this); // 设置分享事件回调
// 执行分享
wechatMoments.share(sp);
}
});
}