shareSDK分享平台分享内容出去显示“来自XXX”的问题及其如何修改分享菜单的背景图片以及调用无UI方法自定义UI分享

通常用我们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,包含了对应错误码的描述信息。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值