这个系列的第一篇文章跟大家讲一下微信的分享,在下篇博客中跟大家讨论支付的坑。
注:我自己了解的分享有3种,android本身带有的分享,各个平台自己的sdk提供的,友盟及SharedSdk的,当然如果说的不全,请别喷。
1). 今天我们这里使用的是ShareSdk中的相关API mob官网
第一步先在你账号对应的后台创建相关的应用并下载sdk
接下来就copy sample目录下的Demo目录中你项目中用到的分享平台对应的jar包到开发项目的libs目录下 ,在gradle.build中进行编译 ,编译完成以后我们便可以进行下面的操作。
说明:AppKey="api20" />是必须的,其中的AppKey是您在ShareSDK上注册的开发者帐号的AppKey
打开demo中的assets文件夹中 ,有个配置文件 :ShareSDK.xml中的内容请仔细看,并修改对的平台配置apikey到上面
配置好以后根据demo中的清单文件配置对应的activity到项目中
/**
* 演示调用ShareSDK执行分享
*
*@paramcontext
*@paramplatformToShare指定直接分享平台名称(一旦设置了平台名称,则九宫格将不会显示)
*@paramshowContentEdit是否显示编辑页
*/
public static voidshowShare(Context context, String platformToShare,booleanshowContentEdit) {
OnekeyShare oks =newOnekeyShare();
oks.setSilent(!showContentEdit);
if(platformToShare !=null) {
oks.setPlatform(platformToShare);
}
//ShareSDK快捷分享提供两个界面第一个是九宫格 CLASSIC 第二个是SKYBLUE
oks.setTheme(OnekeyShareTheme.CLASSIC);
// 令编辑页面显示为Dialog模式
oks.setDialogMode();
// 在自动授权时可以禁用SSO方式
oks.disableSSOWhenAuthorize();
//oks.setAddress("12345678901"); //分享短信的号码和邮件的地址
oks.setTitle("ShareSDK--Title");
oks.setTitleUrl("http://mob.com");
oks.setText("ShareSDK--文本");
//oks.setImagePath("/sdcard/test-pic.jpg"); //分享sdcard目录下的图片
oks.setImageUrl(randomPic()[0]);
oks.setUrl("http://www.mob.com");//微信不绕过审核分享链接
//oks.setFilePath("/sdcard/test-pic.jpg"); //filePath是待分享应用程序的本地路劲,仅在微信(易信)好友和Dropbox中使用,否则可以不提供
oks.setComment("分享");//我对这条分享的评论,仅在人人网和QQ空间使用,否则可以不提供
oks.setSite("ShareSDK");//QZone分享完之后返回应用时提示框上显示的名称
oks.setSiteUrl("http://mob.com");//QZone分享参数
oks.setVenueName("ShareSDK");
oks.setVenueDescription("This is a beautiful place!");
// 将快捷分享的操作结果将通过OneKeyShareCallback回调
//oks.setCallback(new OneKeyShareCallback());
// 去自定义不同平台的字段内容
//oks.setShareContentCustomizeCallback(new ShareContentCustomizeDemo());
// 在九宫格设置自定义的图标
Bitmap logo = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher);
String label ="ShareSDK";
OnClickListener listener =newOnClickListener() {
public voidonClick(View v) {
}
};
oks.setCustomerLogo(logo, label, listener);
// 为EditPage设置一个背景的View
//oks.setEditPageBackground(getPage());
// 隐藏九宫格中的新浪微博
// oks.addHiddenPlatform(SinaWeibo.NAME);
// String[] AVATARS = {
// "http://99touxiang.com/public/upload/nvsheng/125/27-011820_433.jpg",
// "http://img1.2345.com/duoteimg/qqTxImg/2012/04/09/13339485237265.jpg",
// "http://diy.qqjay.com/u/files/2012/0523/f466c38e1c6c99ee2d6cd7746207a97a.jpg",
// "http://diy.qqjay.com/u2/2013/0422/fadc08459b1ef5fc1ea6b5b8d22e44b4.jpg",
// "http://img1.2345.com/duoteimg/qqTxImg/2012/04/09/13339510584349.jpg",
// "http://diy.qqjay.com/u2/2013/0401/4355c29b30d295b26da6f242a65bcaad.jpg" };
// oks.setImageArray(AVATARS); //腾讯微博和twitter用此方法分享多张图片,其他平台不可以
// 启动分享
oks.show(context);
}