shareSDK分享平台分享内容出去显示“来自XXX”的问题及其如何修改分享菜单的背景图片以及调用无UI方法自定义UI分享
2014-12-18 17:47
1271 查看
通常用我们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<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> error, BOOL end) {
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<ISSStatusInfo> statusInfo, id<ICMErrorInfo> error, BOOL end) {
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,包含了对应错误码的描述信息。
[[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<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> error, BOOL end) {
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<ISSStatusInfo> statusInfo, id<ICMErrorInfo> error, BOOL end) {
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,包含了对应错误码的描述信息。
相关文章推荐
- 如何修改分享菜单的背景图片以及调用无UI方法自定义UI分享
- iOS7修改UITabBar文本颜色以及解决自定义选中图片显示为默认蓝色的问题
- 吐血中, 调用分享到微信好友,加载的网络图片显示不出来,微信分享,自定义分享标题、内容描述关键词限制(红包)
- iOS开发 - 友盟分享(自定义分享)如何让新浪分享显示蓝色文字,其他平台内容不显示链接
- (DB ,sqlserver2005,tips)如何获取用户自定义的触发器的内容(在sqlserver2005树形菜单没有显示)
- DedeCMS系统自定义字段图片调用问题的解决方法
- Asp.Net MVC对类HtmlHelper的自定义扩展方法以及如何调用
- 正确修改Ubuntu12.04的grub2启动背景图片和菜单颜色的方法,这次是真的!
- IE下background背景图片无法显示问题解决方法
- 微信自定义分享的文字、内容以及图片
- jquery mobile 设置背景图片铺满整个屏幕以及自定义背景图文字颜色问题
- IOS开发:关于设置UIView的背景为图片的方法以及问题
- android ListView常见问题解决方法(滚动背景变黑,去除滑动时阴影,拖动时Item图片不显示)
- 【Siebel】自定义的方法是用BC的UserProperty修改内容时遇到的问题
- 哪些年遇到过的Andriod问题(十)如何让自定义的方法/类在外部 (别的命名空间) 调用时,鼠标移上去会有提示?
- IOS开发:关于设置UIView的背景为图片的方法以及问题
- android 如何从sd卡中显示图片,动态修改背景图片
- MyEclipse+Tomcat开发Web项目时修改内容不能及时显示问题解决方法
- iOS ShardSDK-如何自定义分享菜单中的平台列表