Android app集成Mob shareSDK分享到微信和QQ
在线安装方法介绍
注意需要用到的appKey和appSecret 请自行到http://www.mob.com官网申请,这里不介绍申请过程了
进入如下下载地址,准备下载shareSDK(其实关键是在最终下载过程中会弹出在线安装的操作提示,这才是我们需要的部分)
http://www.mob.com/download
如下绿色箭头所示:依次点击 下载中心--Android版--ShareSDK 3.4.0
如下图选择自己需要分享的平台微信、QQ等根据需要选择,选择
在点击上图的一键下载按钮后 会出现如下图的提示在线安装,在线安装shareSDK的方式比下载shareSDK安装和配置要简单的多
添加代码在线安装,免下载SDK 推荐使用
将上图的第一步和第二部的代码完整粘贴到下面:
第一步:
将下面的脚本添加到您的根模块build.gradle中:
buildscript {
repositories {
jcenter()
}
dependencies {
// 注册MobSDK
classpath "com.mob.sdk:MobSDK:2018.0319.1724"
}
}
第二步:
在使用相应模块app模块下的build.gradle中,添加MobSDK插件和扩展,如:
apply plugin: 'com.mob.sdk'
MobSDK {
appKey "替换为mob官方申请的appkey"
appSecret "替换为mob官方申请的appkey对应的appSecret"
ShareSDK {
devInfo {
SinaWeibo {
appKey "568898243"
appSecret "38a4f8204cc784f81f9f0daaf31e02e3"
callbackUri "http://www.sharesdk.cn"
}
TencentWeibo {
appKey "801307650"
appSecret "ae36f4ee3946e1cbb98d6965b0b2ff5c"
callbackUri "http://www.sharesdk.cn"
}
Facebook {
appKey "1412473428822331"
appSecret "a42f4f3f867dc947b9ed6020c2e93558"
callbackUri "https://mob.com"
}
Twitter {
appKey "LRBM0H75rWrU9gNHvlEAA2aOy"
appSecret "gbeWsZvA9ELJSdoBzJ5oLKX0TU09UOwrzdGfo9Tg7DjyGuMe8G"
callbackUri "http://mob.com"
}
LinkedIn {
appKey "ejo5ibkye3vo"
appSecret "cC7B2jpxITqPLZ5M"
callbackUri "http://www.sharesdk.cn"
}
Email {}
ShortMessage {}
Wechat {
appId "wx4868b35061f87885"
appSecret "64020361b8ec4c99936c0e3999a9f249"
userName "gh_afb25ac019c9"
path "pages/index/index.html?id=1"
withShareTicket true
miniprogramType 2
}
QQ {
appId "100371282"
appKey "aed9b0303e3ed1e27bae87c33761161d"
}
WechatMoments {
appId "wx4868b35061f87885"
appSecret "64020361b8ec4c99936c0e3999a9f249"
}
WechatFavorite {
appId "wx4868b35061f87885"
appSecret "64020361b8ec4c99936c0e3999a9f249"
}
}
}
}
在APP的APPApplication文件中添加初始化代码
public class AppApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
MobSDK.init(this);//http://www.mob.com/ 使用这个公司的分享功能,具体参照官网提示,页面分享功能初始化
。。。。。。。
}
1 |
MobSDK.init(this); |
在需要分享的界面(页面)添加分享按钮等 触发一个点击事件,在点击事件里执行如下一键分享代码
/**
* 界面分享到微信微博QQ等其他平台的方法
*/
其中url是当前被访问的界面(网页)的地址
private void showShare(String url){
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize();
// title标题,印象笔记、邮箱、信息、微信、人人网、QQ和QQ空间使用
oks.setTitle("标题");
// titleUrl是标题的网络链接,仅在Linked-in,QQ和QQ空间使用
oks.setTitleUrl(url);
// text是分享文本,所有平台都需要这个字段
oks.setText("文本内容");
//分享网络图片,新浪微博分享网络图片需要通过审核后申请高级写入接口,否则请注释掉测试新浪微博
// oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");//网络图片
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
//oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片//本地图片
Bitmap bitmap = BitmapFactory.decodeResource(this.getApplicationContext().getResources(), R.mipmap.logo);//显示APP本身自带图片
oks.setImageData(bitmap);//bitmap格式图片
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl(url);
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("很棒,值得分享!!");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite("网站名称");
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl(url);
// 启动分享GUI
oks.show(this);
}
-------------------------------------------上面是参照官方和度娘总结的shareSDK的在线安装配置部分,下面是官方的介绍----------------------------------------------
下面的内容是来自官方的集成文档说明,可以结合参考
http://wiki.mob.com/sdk-share-android-3-0-0/
注:使用ShareSDK Gradle集成方式,不需要在AndroidMainfest.xml下面配置任何权限和Activity
注意:需要先申请Mob的appkey与appsecret请点击这里查看
1、打开项目根目录的build.gradle,在buildscrip–>dependencies 模块下面添加 classpath ‘com.mob.sdk:MobSDK:2018.0319.1724’,如下所示;
1 2 3 4 5 6 7 8 9 10 11 |
buildscript { repositories { jcenter() }
dependencies { ... classpath "com.mob.sdk:MobSDK:2018.0319.1724"
} } |
2、在使用到Mob产品的module下面的build.gradle文件里面添加引用
1 |
apply plugin: 'com.mob.sdk' |
3、然后添加MobSDK方法,配置mob的key和秘钥 (与第2步是一个gradle中;注意:MobSDK方法是配置到文件根目录,与android并列,不要配置到android里面哦)
如果还没有key的,申请Mob的appkey与appsecret请点击这里查看
Onekeyshare是ShareSDK的GUI界面,如果不需要,则需要添加”gui false”,因为默认是使用gui,version字段为SDK的版本号,不设置则使用最新的版本;
1 2 3 4 5 6 7 |
MobSDK { appKey "d580ad56b4b5" appSecret "7fcae59a62342e7e2759e9e397c82bdd"
ShareSDK {}
} |
4、Gradle集成方式可以在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 31 |
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" shareByAppClient true } Facebook { appKey "1412473428822331" appSecret "a42f4f3f867dc947b9ed6020c2e93558" callbackUri "https://mob.com" } } }
} |
其中的devInfo为来自社交平台的应用信息。
注:如果您没有在AndroidManifest中设置appliaction的类名,MobSDK会将这个设置为com.mob.MobApplication,但如果您设置了,请在您自己的Application类中调用:
1 |
MobSDK.init(this); |
并且在Manifest清单文件中配置:tools:replace=”android:name”,如下所示:
1 2 3 |
<application android:name = ".MyApplication" tools:replace="android:name"> |
配置完以上信息后同步(sync)一下代码就可以调用相关的接口了
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 6 7 8 9 10 |
-keep class cn.sharesdk.**{*;} -keep class com.sina.**{*;} -keep class **.R$* {*;} -keep class **.R{*;} -keep class com.mob.**{*;} -keep class m.framework.**{*;} -dontwarn cn.sharesdk.** -dontwarn com.sina.** -dontwarn com.mob.** -dontwarn **.R$* |
任何配置在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 |
repositories { jcenter() } |