您的位置:首页 > 产品设计 > UI/UE

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,包含了对应错误码的描述信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐