通常用我们demo里的appkey分享到某个平台会显示”来自ShareSDK“,这个应用的名称不是由我们的SDK来更改的,这个是开发者自己到对应的分享平台去注册应用,然后把注册应用得到的这个appkey来初始化这个平台就可以显示开发者自己注册的应用名称,例如微信初始化:
[[ShareSDK connectWeChatWithAppId:@"wx4868b35061f87885"
appSecret:@"64020361b8ec4c99936c0e3999a9f249"
wechatCls:[WXApi class]];
需要把这里的appid和appsecret替换成你自己注册应用获取得到的微信的appid和appSecret,并且需要把初始化我们sdk的appkey换成自己在我们后台注册应用得到的appkey:
[[ShareSDK registerApp:@"iosv1101"];
如何修改分享菜单的背景图片以及调用无UI方法自定义UI分享
1、我们的分享菜单可以修改背景图片,取消按钮的背景图片和第三方平台的图标,不能修改样式,但iOS7风格的也就是白色背景的分享菜单是不能做任何修改的,要想修改背景图片,需要先调用方法把风格设置为iOS7以下,调用的方法是ShareSDK.framework里面的ShareSDK.h文件里的这个方法:+ (void)setUIStyle:(SSUIStyle)style;这个方法可以这样使用:[ShareSDK setUIStyle:SSUIStyleiOS7Below];(也可以选择不下载iOS7扁平风格的UI,或者删除掉UI文件里的ShareSDKFlatShareViewUI这个UI文件)然后找到下图的文件,右击点击show In Finder,然后再右击Resource.bundle,显示包内容,找到相应图片替换,clean下项目就可以了:
2、如果想要改变分享菜单和分享界面的样式,以及想自己自定义分享菜单和分享界面的话,可以不用我们的分享菜单和分享界面的UI,调用我们的无UI的分享方法,然后根据自己的方法来自己设计UI,调用的无UI分享的方法是:
[ShareSDK shareContent:publishContent
type:ShareTypeTencentWeibo
authOptions:nil
shareOptions:nil
statusBarTips:YES
result:^(ShareType type, SSResponseState state,
id
if (state == SSResponseStateSuccess)
{
NSLog(NSLocalizedString(@"TEXT_ShARE_SUC", @"分享成功"));
}
else if (state == SSResponseStateFail)
{
NSLog(NSLocalizedString(@"TEXT_ShARE_FAI", @"分享失败,错误码:%d,错误描述:%@"), [error errorCode], [error errorDescription]);
}
}];
【问题4】 如何查看ShareSDK返回的错误码?
iOS的错误码
所有带错误码返回的接口(包括分享、获取用户资料、关注用户等)都通过特定的block方法中的error进行返回。因此,在调用接口的时候指定block方法,然后根据返回结果来获取错误代码即可。下面加粗部分代码展示了如何捕获分享异常的错误码以及错误描述:
//弹出分享菜单
[ShareSDK showShareActionSheet:nil
shareList:nil
content:publishContent
statusBarTips:YES
authOptions:authOptions
shareOptions:shareOptions
result:^(ShareType type, SSPublishContentState state,
id
if (state == SSPublishContentStateSuccess)
{
NSLog(@"分享成功");
}
else if (state == SSPublishContentStateFail)
{
NSLog(@"分享失败,错误码:%d,错误描述:%@", [error errorCode], [error errorDescription]);
}
}];
error参数是一个实现了ICMErrorInfo协议的对象,其包含三个属性:
第一个是errorLevel,用于指定错误级别;有三种级别分别是CMErrorLevelAPI,CMErrorLevelHTTP以及CMErrorLevelNetwork。其中CMErrorLevelAPI为调用API时返回错误,该错误码与各个平台返回错误码相同,详细可以参考各个平台的错误码描述。CMErrorLevelHTTP为HTTP请求错误,错误码为HTTP返回状态码,CMErrorLevelNetwork则表示网络错误。
第二个是errorCode,包含了指定的错误代码。
第三个是errorDescription,包含了对应错误码的描述信息。