第三方分享已经是项目中司空见惯的东西了,可以将app的内容分享到国内的各大主流平台,比如QQ、微信、新浪微博等,站在开发者的角度,既有各大官方开放平台推出的自家分享SDK,也有友盟、MobShareSDK等三方平台提供的整合框架,后者是将各主流平台的分享SDK进行整合并深度封装后呈现给用户,略去了用户逐步下载、调试、整合的烦恼,凭借着简洁、易操作、稳定的特性,成为了更多开发者的首选。
这篇博文主要是围绕着MobShareSDK的使用来陈述。
效果图
步骤:
1.登录MobShareSDK官方网站,进行常规注册登录
2.进入AndroidSDK,点选常用的平台,下载,解压
3.点击quickIntegrater
4.点击确定后生成一个新文件夹Sample,点击进入
5.打开AndroidStudio,新建一个项目,将Sample文件夹中的资源文件拷贝到项目中,添加依赖
6.在各大开放平台申请应用key,微信和微博需要填写签名,下载个签名获取工具安装到手机,输入已安装应用的包名,生成签名填入即可。
7.打开assets目录下的ShareSDK.xml,填入相应平台的key值
值得一提,这四个平台的ByPassApproval参数应该设置为false,意为不设置绕过审核,否则分享内容会有限制。
8.在MyApplication中初始化ShareSDK
9.在分享的入口启动showshare方法
/**
* 启动分享功能
*/
private void showShare() {
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize();
oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() {
@Override
public void onShare(Platform platform, Platform.ShareParams paramsToShare) {
loadingView.show();
paramsToShare.setImageData(bitmap);
//微信分享的字段设置
if (platform.getName().equals(Wechat.NAME)|| platform.getName().equals(WechatMoments.NAME)){
paramsToShare.setShareType(Platform.SHARE_IMAGE);
}
}
});
oks.setCallback(new PlatformActionListener() {
@Override
public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
loadingView.dismiss();
ToastUtils.showShort("分享成功");
}
@Override
public void onError(Platform platform, int i, Throwable throwable) {
loadingView.dismiss();
ToastUtils.showShort("分享失败");
}
@Override
public void onCancel(Platform platform, int i) {
loadingView.dismiss();
ToastUtils.showShort("分享取消");
}
});
// 启动分享GUI
oks.show(this);
}
这里如果分享本地图片,微信平台需要设置sharetype为SHARE_IMAGE
paramsToShare.setShareType(Platform.SHARE_IMAGE);
如果是网页,微信平台的sharetype设置为SHARE_WEBPAGE
paramsToShare.setShareType(Platform.SHARE_WEBPAGE);
新浪微博不支持设置url,需要把链接拼接在text后面,分享成功后会自动识别并设置可点击的网页
//新浪微博分享的字段设置
if (platform.getName().equals(SinaWeibo.NAME)) {
paramsToShare.setText(“这是标题” + "http://xxxxxxxxxxxxxxxxxxx);
}
至此全部完成!