ShareSDK Maven集成文档
注:使用ShareSDK maven集成方式,不需要在AndroidMainfest.xml下面配置任何权限和Activity
一、配置集成
1、打开项目根目录的gradle.build,在buildscrip>repositories的方法下面添加maven库的路径引用
1 2 3 |
maven { url "http://mvn.mob.com/android" } |
2、在gradle.build下面的dependencies依赖模块下面添加MobSDK的依赖
1 2 3 4 |
dependencies { ... classpath 'com.mob.sdk:MobSDK:+' } |
3、在使用到Mob产品的module下面的build.gradle文件里面添加引用
1 |
apply plugin: ‘com.mob.sdk’ |
4、然后添加MobSDK方法,配置mob的key和秘钥
Onekeyshare是ShareSDK的GUI界面,如果不需要,则需要添加”gui false”,因为默认是使用gui,version字段为SDK的版本号,不设置则使用最新的版本;
1 2 3 4 5 6 7 |
MobSDK { appKey "d580ad56b4b5" appSecret "7fcae59a62342e7e2759e9e397c82bdd" ShareSDK {} } |
5、maven集成方式可以在Mob产品的module下面的build.gradle文件里面配置ShareSDK各个社交平台的key信息
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 |
MobSDK { appKey "d580ad56b4b5" appSecret "7fcae59a62342e7e2759e9e397c82bdd" ShareSDK { //平台配置信息 devInfo { SinaWeibo { appKey "568898243" appSecret "38a4f8204cc784f81f9f0daaf31e02e3" callbackUri "http://www.sharesdk.cn" shareByAppClient false } Wechat { appId "wx4868b35061f87885" appSecret "64020361b8ec4c99936c0e3999a9f249" } QQ { appId "100371282" appKey "aed9b0303e3ed1e27bae87c33761161d" } Facebook { appKey "1412473428822331" appSecret "a42f4f3f867dc947b9ed6020c2e93558" callbackUri "https://mob.com" } } } } |
其中的devInfo
为来自社交平台的应用信息。
二、配置字段说明
配置支持的平台全部属性字段有以下这些(注:区分大小写):
id | 数字,平台的id,可以设置为任何不重复的数字,(可选字段) |
sortId | 数字,九宫格界面平台的排序,越大越靠前,可以设置为任何不重复的数字,(可选字段) |
appId | 文本,对应ShareSDK.xml中的AppId、ClientID、ApplicationId、ChannelID |
appKey | 文本,对应ShareSDK.xml中的AppKey、ConsumerKey、ApiKey、OAuthConsumerKey |
appSecret | 文本,对应ShareSDK.xml中的AppSecret、ConsumerSecret、SecretKey、Secret、ClientSecret、ApiSecret、ChannelSecret |
callbackUri | 文本,对应ShareSDK.xml中的RedirectUrl、RedirectUri、CallbackUrl |
shareByAppClient | 布尔值,shareByAppClient标识是否使用客户端分享 |
bypassApproval | 布尔值,bypassApproval表示是否绕过审核 |
enable | 布尔值,enable字段表示此平台是否启用 |
userName | 文本,userName在微信小程序中使用 |
path | 文本,path在微信小程序中使用 |
hostType | 文本,表示服务器类型,在YouDao和Evernote中使用 |
配置完以上信息后同步(sync)一下代码就可以调用相关的接口了
注意事项
1. ShareSDK默认会添加OnekeyShare库,如果您不需要这个库,可以在ShareSDK
下设置“gui false”来关闭OnekeyShare
2. MobSDK默认为ShareSDK提供最新版本的集成,如果您想锁定某个版本,可以在ShareSDK
下设置“version “某个版本””来固定使用这个版本
3. 如果使用MobSDK的模块会被其它模块依赖,请确保依赖它的模块也引入MobSDK插件,或在此模块的gradle中添加:
1 2 3 4 5 6 7 |
buildscript repositories { maven { url "http://mvn.mob.com/android" } } } |
三、添加代码
1、初始化MobSDK
如果您没有在AndroidManifest
中设置appliaction
的类名,MobSDK会将这个设置为com.mob.MobApplication
,但如果您设置了,请在您自己的Application类中调用:
1 |
MobSDK.init(this); |
以初始化MobSDK。
添加配置后,即可调用授权、获取资料、分享等操作,如一键分享的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
private void showShare() { OnekeyShare oks = new OnekeyShare(); //关闭sso授权 oks.disableSSOWhenAuthorize(); // title标题,微信、QQ和QQ空间等平台使用 oks.setTitle(getString(R.string.share)); // titleUrl QQ和QQ空间跳转链接 oks.setTitleUrl("http://sharesdk.cn"); // text是分享文本,所有平台都需要这个字段 oks.setText("我是分享文本"); // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数 oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片 // url在微信、微博,Facebook等平台中使用 oks.setUrl("http://sharesdk.cn"); // comment是我对这条分享的评论,仅在人人网使用 oks.setComment("我是测试评论文本"); // 启动分享GUI oks.show(this); } } |
四、混淆设置
ShareSDK已经做了混淆处理,再次混淆会导致不可预期的错误,请在您的混淆脚本中添加如下的配置,跳过对ShareSDK的混淆操作:
1 2 3 4 5 |
-keep class cn.sharesdk.**{*;} -keep class com.sina.**{*;} -keep class **.R$* {*;} -keep class **.R{*;} -keep class com.mob.**{*;} |
五、可用的社交平台
任何配置在devInfo
下的社交平台都是可用的,他们包括:
分类 | 平台名称 |
常用平台 | SinaWeibo(新浪微博)、Wechat(微信好友)、WechatMoments(微信朋友圈)、QQ(QQ好友)、Facebook、FacebookMessenger |
其它主流平台 | TencentWeibo(腾讯微博)、QZone(QQ空间)、Renren(人人网)、Twitter、Douban(豆瓣)、Tumblr、GooglePlus(Google+)、Pinterest、Line、Instagram、Alipay(支付宝好友)、AlipayMoments(支付宝朋友动态)、Youtube、Meipai(美拍) |
其它平台 | WechatFavorite(微信收藏)、KaiXin(开心网)、Email(电子邮件)、ShortMessage(短信)、YouDao(有道云笔记)、Evernote(印象笔记)、LinkedIn(领英)、FourSquare、Flickr、Dropbox、VKontakte、Yixin(易信)、YixinMoments(易信朋友圈)、Mingdao(明道)、KakaoTalk、KakaoStory、WhatsApp、Pocket、Instapaper、Dingding(钉钉)、Telegram |
六、注意事项
1. ShareSDK默认会添加OnekeyShare库,如果您不需要这个库,可以在ShareSDK
下设置“gui false”来关闭OnekeyShare
2. MobSDK默认为ShareSDK提供最新版本的集成,如果您想锁定某个版本,可以在ShareSDK
下设置“version “某个版本””来固定使用这个版本
3. 如果使用MobSDK的模块会被其它模块依赖,请确保依赖它的模块也引入MobSDK插件,或在此模块的gradle中添加:
1 2 3 4 5 |
repositories { maven { url "http://mvn.mob.com/android" } } |
七. 其他问题参考
– [新浪微博分享说明]
– [QQ分享说明]
– [微信分享说明]
– [Facebook分享说明]