对于分享预计很多都用的是ShareSDK的社会化分享,简略不便,反对的品种很多,然而个别的话都还是QQ,微信,新浪微博,腾讯微博为主。
最近须要导入一个分享的模块,失败了几次之后最终胜利,分享给大家,让大家少走一些弯路,让大家更快的搞定IOS分享的问题。
步骤如下:
先下载ShareSDK。
导入我的项目
导入所须要的一些库文件
去各个开放平台注册本人的APPKey,创立本人的利用。
最初到我的项目里配置各个平台的AppKey等等。
进入注释:
1.注册ShareSDK的账号,而后创立本人的利用(要用到APPKey),下载ShareSDK:http://sharesdk.mob.com/#/sha...,而后解压,导入本人的我的项目里,接着就是依照官网上的增加额定的依赖库,剩下的就是怎么把分享性能实现。
2.注册各个平台的AppKey
首先要注册账号,再接着创立利用,找到对应的AppKey即可。上面是比拟罕用的三个平台的链接。
3.在代码里注册ShareSDK还有各个平台。
首先要导入头文件
#import #import #import #import #import "WXApi.h"#import "WeiboSDK.h"
接着只有在上面的这个办法里退出这段代码就能够了
- (BOOL)application:(UIApplication)application didFinishLaunchingWithOptions:(NSDictionary)launchOptions ;这个办法里退出这段代码就能够(AppKey须要填写本人的新浪微博还有回调地址都要一样)。
代码如下:
[ShareSDK registerApp:@"你注册的ShareSDKAppKey" activePlatforms://分享的平台,这里只有新浪微博,QQ,微信@[@(SSDKPlatformTypeSinaWeibo),@(SSDKPlatformTypeWechat),@(SSDKPlatformTypeQQ)]onImport:^(SSDKPlatformType platformType){switch (platformType){//同样这里和下面一一对应case SSDKPlatformTypeSinaWeibo:[ShareSDKConnector connectWeibo:[WeiboSDK class]];break;case SSDKPlatformTypeWechat:[ShareSDKConnector connectWeChat:[WXApi class]];break;case SSDKPlatformTypeQQ:[ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];break;default:break;}}onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo){switch (platformType){//这里也是一样和下面一一对应case SSDKPlatformTypeSinaWeibo://设置新浪微博利用信息,其中authType设置为应用SSO+Web模式受权[appInfo SSDKSetupSinaWeiboByAppKey:@"新浪微博的AppKey" appSecret:@"新浪微博的Secret" redirectUri:@"回调地址" authType:SSDKAuthTypeBoth];break;case SSDKPlatformTypeWechat://设置微信利用信息[appInfo SSDKSetupWeChatByAppId:@"微信的AppId" appSecret:@"微信的Secret"];break;case SSDKPlatformTypeQQ://设置QQ利用信息,其中authType设置为只用SSO模式受权[appInfo SSDKSetupQQByAppId:@"QQ的AppId" appKey:@"QQ的AppKey" authType:SSDKAuthTypeSSO];break;default:break;}}];
4.接着就是写分享的参数(就是触发分享事件的中央,来调用分享的界面)。
首先也要导入头文件
#import #import #import #import #import "WXApi.h"#import "WeiboSDK.h"
接着只有在上面的这个办法里退出这段代码就能够了
将上面的这段代码放到触发点击事件的那个中央就能够。
//1、创立分享参数NSArray* imageArray = @[[UIImage imageNamed:@"分享时的图片"]];//(留神:图片必须要在Xcode右边目录外面,名称必须要传正确,如果要分享网络图片,能够这样传iamge参数 images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])if (imageArray){NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];[shareParams SSDKSetupShareParamsByText:@"分享的内容" images:imageArray url:[NSURL URLWithString:@"分享的网址"] title:@"分享的题目" type:SSDKContentTypeAuto];//2、分享(能够弹出咱们的分享菜单和编辑界面)//要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,只有传这个才能够弹出咱们的分享菜单,能够传分享的按钮对象或者本人创立小的view 对象,iPhone能够传nil不会影响[ShareSDK showShareActionSheet:nil items:nil shareParams:shareParams onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end){switch (state){case SSDKResponseStateSuccess:{UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享胜利" message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];[alertView show];break;}case SSDKResponseStateFail:{UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失败" message:[NSString stringWithFormat:@"%@",error] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];[alert show];break;}default:break;}}];}
5.设置调用QQ微信和微博客户端
如图:
设置微信:微信的AppID后面要加上wx
设置QQ:
在URL Types中增加QQ的AppID,其格局为:”QQ” + AppId的16进制(如果appId转换的16进制数不够8位则在后面补0,如转换的是:5FB8B52,则最终填入为:QQ05FB8B52 留神:转换后的字母要大写) 转换16进制的办法:echo 'ibase=10;obase=16;801312852'|bc,其中801312852为QQ的AppID。比方下图:
设置新浪微博:
还须要这样
这样基本上就能够了。
重点来了,如果这样还是不能分享的话可能是因为你没有把QQ和微信退出白名单
在我的项目的plist文件中增加如下内容(白名单):
LSApplicationQueriesSchemes
weixin
mqzoneopensdk
mqzoneopensdkapi
mqzoneopensdkapi19
mqzoneopensdkapiV2
mqqOpensdkSSoLogin
mqqopensdkapiV2
mqqopensdkapiV3
wtloginmqq2
mqqapi
mqqwpa
mqzone
mqq
sinaweibo
sinaweibohd
sinaweibosso
sinaweibohdsso
weibosdk
weibosdk2.5
TencentWeibo
tencentweiboSdkv2
如果你的我的项目是一个新我的项目还没写网络申请的话那还有一段也要加上
NSAppTransportSecurity
NSAllowsArbitraryLoads
这样的话基本上应该就没有什么问题了,QQ和微信必须用带有QQ和微信的真机能力进去,所以模拟器是出不来QQ和微信的。
等你的利用上线的时候肯定要把你各个平台的信息对立一下,避免出错。
剩下的就是等你的利用审核通过之后把各个平台的在看一下,有的还须要审核。
还有就是ShareSDK默认显示是英语,还须要在本地化一个汉语,