一直用的友盟分享,最近客户提了个新需求要求可以分享到Facebook 想到友盟就有FB分享 万分激动啊。。
但是测试后发现 友盟的Facebook 两种都存在一定问题。。
第一种 使用系统自带Facebook需要先在手机上设置Facebook账号
优点:这种分享简单 不需要配置Facebook AppID
缺点:继承了系统Facebook 不能预填写分享内容的特点(一般的app分享内容是要预填写的 怎么着也得王婆卖瓜对不对。。所以这个缺点很致命);
第二种:使用应用内网页分享 (这种分享 友盟官方demo 都无法分享成功 ==)
优点:不用费脑子想了,就是没有优点
缺点:都分享不了了 你说呢
既然这样。。 只能手动集成了。。。 ==
---------以上纯属抱怨 ----下面进入正题---
集成友盟就不累赘讲了
首先 你需要进入https://developers.facebook.com注册一个应用 得到一个 App ID
官方文档地址 https://developers.facebook.com/docs/ios/getting-started
首先 下载 Facebook sdk 下载下来是.pkg安装文件
安装完成 在~/Documents/FacebookSDK 路径下 可以找到 Facebook的sdk
把 FBSDKLoginKit.framework FBSDKShareKit.framework FBSDKCoreKit.framework 拖拽到项目下
选择 Create groups for any added folders
.
在项目的.plist文件内 新建一个FacebookAppID key value 是上面在Facebook注册完应用得到的appID
然后 在 info ->URL types
->点击加号 在url schemes 里填写 fb+appID (如:fb91136964205)
最后 在appdelegate.m 中添加下面代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
return [[FBSDKApplicationDelegate sharedInstance] application:application
didFinishLaunchingWithOptions:launchOptions];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation];
}
---到这里--Facebook SDK 集成完毕-----
然后 需要重新定义友盟的 sharetofacebook 平台
截获友盟Facebook平台的点击事件 走官方sdk
UMSocialSnsPlatform *fbPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToFacebook];
fbPlatform.needLogin = NO;
NSString *shareUrlStr = @"www.baidu.com";
fbPlatform.snsClickHandler = ^(UIViewController *presentingController, UMSocialControllerService * socialControllerService, BOOL isPresentInController) {
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:shareUrlStr];
content.contentDescription = shareContentText;
content.contentTitle = @"test sharefb";
content.imageURL = [NSURL URLWithString:@"http://dev.umeng.com/system/images/W1siZiIsIjIwMTQvMDMvMTIvMTZfMjFfNDBfNTc3X3NvY2lhbF9zaGFyZWxpc3RfYWN0aW9uc2hlZXQucG5nIl1d/social_sharelist_actionsheet.png"];
[FBSDKShareDialog showFromViewController:self
withContent:content
delegate:nil];
};
---到这里 --大功告成了^_^-----
PS:我也不想干巴巴的说。。但是不老写博客。。不知道怎么加图片 ==
Demo 地址: https://github.com/Rachel829/UMShareToFBDemo