ShareSDK Android端分享与授权示例代码
本文意在提供更便捷的分享和授权代码,仅供参考,希望可以给你带来更愉快的开发心情:
分享
分享分为两种方式:第一种通过OneKeyShare一键九宫格分享,第二种指定平台分享
一键九宫格分享多个平台
一键分享指的是通过OneKeyShare九宫格界面分享多个平台,不同平台分享不同的数据类型请参考:
OnekeyShare oks = new OnekeyShare();
oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() {@Overridepublic void onShare(Platform platform, cn.sharesdk.framework.Platform.ShareParams paramsToShare) {//微博分享链接和图文if ("SinaWeibo".equals(platform.getName())) {paramsToShare.setText("玩美夏日,护肤也要肆意玩酷!" + "www.mob.com");paramsToShare.setImageUrl("https://hmls.hfbank.com.cn/hfapp-api/9.png");}//微信好友分享网页if ("Wechat".equals(platform.getName())) {paramsToShare.setTitle("标题");paramsToShare.setText("我是共用的参数,这几个平台都有text参数要求,提取出来啦");paramsToShare.setImageUrl("https://hmls.hfbank.com.cn/hfapp-api/9.png");paramsToShare.setUrl("http://sharesdk.cn");paramsToShare.setShareType(Platform.SHARE_WEBPAGE);Log.d("ShareSDK", paramsToShare.toMap().toString());}//微信朋友圈分享图片if ("WechatMoments".equals(platform.getName())) {paramsToShare.setTitle("标题");paramsToShare.setText("我是共用的参数,这几个平台都有text参数要求,提取出来啦");/*Bitmap imageData = BitmapFactory.decodeResource(getResources(), R.drawable.logo);paramsToShare.setImageData(imageData);*/paramsToShare.setImageUrl("https://hmls.hfbank.com.cn/hfapp-api/9.png");paramsToShare.setShareType(Platform.SHARE_IMAGE); Log.d("ShareSDK", paramsToShare.toMap().toString());}//QQ分享链接if ("QQ".equals(platform.getName())) {paramsToShare.setTitle("标题");paramsToShare.setTitleUrl("http://sharesdk.cn");paramsToShare.setText("我是共用的参数,这几个平台都有text参数要求,提取出来啦");paramsToShare.setImageUrl("https://hmls.hfbank.com.cn/hfapp-api/9.png");Log.d("ShareSDK", paramsToShare.toMap().toString());}//支付宝好友分享网页if ("Alipay".equals(platform.getName())) {paramsToShare.setTitle("标题");paramsToShare.setText("我是共用的参数,这几个平台都有text参数要求,提取出来啦");paramsToShare.setImageUrl("https://hmls.hfbank.com.cn/hfapp-api/9.png");paramsToShare.setUrl("http://sharesdk.cn");paramsToShare.setShareType(Platform.SHARE_WEBPAGE);Log.d("ShareSDK", paramsToShare.toMap().toString());}//Facebook以卡片形式分享链接if ("Facebook".equals(platform.getName())) {// paramsToShare.setText("我是共用的参数,这几个平台都有text参数要求,提取出来啦");paramsToShare.setImageUrl("https://hmls.hfbank.com.cn/hfapp-api/9.png");paramsToShare.setUrl("http://www.mob.com");paramsToShare.setShareType(Platform.SHARE_WEBPAGE);paramsToShare.setQuote("我是共用的参数");paramsToShare.setHashtag("测试话题分享");}//Twitter分享链接if("Twitter".equals(platform.getName())){paramsToShare.setText("我是共用的参数,这几个平台都有text参数要求,提取出来啦");paramsToShare.setImageUrl("https://hmls.hfbank.com.cn/hfapp-api/9.png");paramsToShare.setUrl("http://sharesdk.cn");}//WhatsApp分享图片if ("WhatsApp".equals(platform.getName())) {paramsToShare.setImageUrl("https://hmls.hfbank.com.cn/hfapp-api/9.png");}//短信分享文本if("ShortMessage".equals(platform.getName())){paramsToShare.setText("我是共用的参数,这几个平台都有text参数要求,提取出来啦");paramsToShare.setTitle("标题");paramsToShare.setAddress("17625325208");}}
});
oks.setCallback(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {Log.d("ShareLogin", "onComplete ----> 分享成功");}@Overridepublic void onError(Platform platform, int i, Throwable throwable) {Log.d("ShareLogin", "onError ----> 失败" + throwable.getStackTrace());Log.d("ShareLogin", "onError ----> 失败" + throwable.getMessage());}@Overridepublic void onCancel(Platform platform, int i) {Log.d("ShareLogin", "onCancel ----> 分享取消");}
});// 启动分享GUI
oks.show(MobSDK.getContext());
指定平台分享
主流平台分享示例
这里列举下微信分享网页和QQ分享链接
- 微信分享网页
Wechat.ShareParams sp = new Wechat.ShareParams();
//微信分享网页的参数严格对照列表中微信分享网页的参数要求
sp.setTitle("标题");
sp.setText("我是共用的参数,这几个平台都有text参数要求,提取出来啦");
/*Bitmap imageData = BitmapFactory.decodeResource(getResources(), R.drawable.logo);
sp.setImageData(imageData);*/
sp.setImageUrl("https://hmls.hfbank.com.cn/hfapp-api/9.png");
sp.setUrl("http://sharesdk.cn");
sp.setShareType(Platform.SHARE_WEBPAGE);
Log.d("ShareSDK", sp.toMap().toString());
Platform wechat = ShareSDK.getPlatform(Wechat.NAME);
// 设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理UI操作)
wechat.setPlatformActionListener(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {Log.d("ShareSDK", "onComplete ----> 分享成功");}@Overridepublic void onError(Platform platform, int i, Throwable throwable) {Log.d("ShareSDK", "onError ----> 分享失败" + throwable.getStackTrace().toString());Log.d("ShareSDK", "onError ----> 分享失败" + throwable.getMessage());}@Overridepublic void onCancel(Platform platform, int i) {Log.d("ShareSDK", "onCancel ----> 分享取消");}
});
// 执行图文分享
wechat.share(sp);
- QQ分享链接
QQ.ShareParams sp = new QQ.ShareParams();
sp.setTitle("标题");
sp.setText("我是共用的参数,这几个平台都有text参数要求,提取出来啦");
sp.setImageUrl("https://hmls.hfbank.com.cn/hfapp-api/9.png");
sp.setTitleUrl("http://sharesdk.cn");
Log.d("ShareSDK", sp.toMap().toString());
Platform qq = ShareSDK.getPlatform(QQ.NAME);
// 设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理UI操作)
qq.setPlatformActionListener(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {Log.d("ShareSDK", "onComplete ----> 分享成功");}@Overridepublic void onError(Platform platform, int i, Throwable throwable) {Log.d("ShareSDK", "onError ----> 分享失败" + throwable.getStackTrace().toString());Log.d("ShareSDK", "onError ----> 分享失败" + throwable.getMessage());}@Overridepublic void onCancel(Platform platform, int i) {Log.d("ShareSDK", "onCancel ----> 分享取消");}
});
// 执行图文分享
qq.share(sp);
授权
授权代码比较固定,这里提供下微信授权、QQ授权:
微信授权
Platform wechat = ShareSDK.getPlatform(Wechat.NAME);
//判定客户端是否可用
if (wechat.isClientValid()) {//客户端可用
}
if (wechat.isAuthValid()) {wechat.removeAccount(true);
}
wechat.setPlatformActionListener(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, final HashMap<String, Object> hashMap) {/*platform.getDb().exportData()获取用户公共信息*/Log.d("ShareSDK", "onComplete ----> 登录成功" + platform.getDb().exportData());platform.getDb().getUserId();}@Overridepublic void onError(Platform platform, int i, Throwable throwable) {Log.d("ShareSDK", "onError ----> 登录失败" + throwable.toString());Log.d("ShareSDK", "onError ----> 登录失败" + throwable.getStackTrace().toString());Log.d("ShareSDK", "onError ----> 登录失败" + throwable.getMessage());}@Overridepublic void onCancel(Platform platform, int i) {Log.d("ShareSDK", "onCancel ----> 登录取消");}
});
wechat.SSOSetting(false);
wechat.showUser(null);
QQ授权
Platform qq = ShareSDK.getPlatform(QQ.NAME);
//判定客户端是否可用
if (qq.isClientValid()) {//客户端可用
}
if (qq.isAuthValid()) {qq.removeAccount(true);
}
qq.setPlatformActionListener(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, final HashMap<String, Object> hashMap) {/*platform.getDb().exportData()获取用户公共信息*/Log.d("ShareSDK", "onComplete ----> 登录成功" + platform.getDb().exportData());platform.getDb().getUserId();}@Overridepublic void onError(Platform platform, int i, Throwable throwable) {Log.d("ShareSDK", "onError ----> 登录失败" + throwable.toString());Log.d("ShareSDK", "onError ----> 登录失败" + throwable.getStackTrace().toString());Log.d("ShareSDK", "onError ----> 登录失败" + throwable.getMessage());}@Overridepublic void onCancel(Platform platform, int i) {Log.d("ShareSDK", "onCancel ----> 登录取消");}
});
qq.SSOSetting(false);
qq.showUser(null);
ShareSDK Android端分享与授权示例代码相关推荐
- 播放器地址抓取 php,从优酷土豆视频地址中获取swf播放器分享地址 - PHP示例代码...
从优酷土豆视频地址中获取swf播放器分享地址 - PHP示例代码 分类:PHP_Python| 发布:佚名| 查看: | 发表时间:2014/10/27 由于最近项目开发中遇到视频分享的功能,以下简单 ...
- Android网络通信的六种方式示例代码
表1展示了Android SDK中的一些与网络有关的API包名 表1. Android SDK 网络包 包 描述 ...
- ShareSDK Android端权限说明
ShareSDK使用权限情况 去除非必须的权限 普通权限去除 可以在module模块中的build.gradle文件中添加以下的配置去除Gradle自动加载的可选权限方法,去除之后无需添加其他配置功能 ...
- android 分享微信 不审核,ShareSDK Android 微信分享 绕过审核与不绕过审核
首先,微信在android平台有两种方式:一种是绕过审核分享,一种是不绕过审核分享. 绕过审核和不绕过审核的对比图如下: 1.微信好友对比图: 绕过审核分享分享给微信好友时看到的只是图片文件,显示的是 ...
- ShareSDK Android端主流平台分享示例
ShareSDK可以调用getPlatform接口设置要分享的平台,下面是分享示例: 微信分享示例(好友.朋友圈.收藏) 微信分享文本 Platform platform = ShareSDK.get ...
- html页面在微信分享php,详解html静态页面实现微信分享思路的示例代码分析
微信分享网页的时候,希望分享出来的链接是标题+描述+缩略图,微信开发代码示例里已提供了方法,但只适用于动态页面.由于dedecms是生成了静态文件,其实我想使用ajax获取jssdk参数也能也能实现微 ...
- android 代码打开权限,android开发权限询问的示例代码
现在基于信息安全问题,特别是版本是23以上权限越严格. 特别是拍照,读,写权限 一般权限允许过,下次就不用询问了的,所以很多应用都喜欢在首页或者启动页直接询问,不允许的就用不了1.下面给出封装好的类, ...
- android+微信分享代码,Android 微信分享icon黑边代码解决
由于Android的 icon 四周圆角裁剪时为透明所以在分享到微信和QQ好友中呈现黑边. 代码解决办法 Bitmap bmp = BitmapFactory.decodeResource(insta ...
- android微信 icon,Android 微信分享icon黑边代码解决
由于Android的 icon 四周圆角裁剪时为透明所以在分享到微信和QQ好友中呈现黑边. 代码解决办法 Bitmap bmp = BitmapFactory.decodeResource(insta ...
最新文章
- Android 相对布局别自己快遗忘的属性layout_alignRight,layout_alignBottom,layout_alignTop,layout_alignLeft
- sublime python配置_sublime python环境配置
- java校验ip格式_JAVA IP地址格式验证,使用正则表达式
- 算法----选择排序(select sort)
- 二进制安装kubernetes1.14.1-pod配置清单之客户端访问方式03
- Oracle 跨resetlogs的恢复
- VS 2010 使用项目 无法链接 DLL文件的问题
- 视频播放的方法Android,详解Android App中使用VideoView来实现视频播放的方法
- java获取当前项目相对路径,在JAVA文件中获取该项目的相对路径
- [原创] 指针操作程序答案 — 谭浩强C语言习题答案
- TensorFlow 2.0快速上手指南12条:“Keras之父”亲授 | 高赞热贴
- 谁才是Transformer家族中的最强王者?谷歌告诉你答案
- #pragma code_seg(INIT)/code_seg(PAGE)
- Hi3519V101芯片介绍
- 如何利用 RPA 实现自动化获客?
- 40个增长和管理你的WordPress网站的有用博客工具
- php 区时,php时区时间怎么转换?
- 联想ghost重装系统_联想笔记本系统重装图文教程
- 基于jsp+java+ssm的大学生缴费系统
- python 中文排序(按拼音首字母)