標籤:
一直用的友盟分享,最近客戶提了個新需求要求可以分享到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
iOS友盟分享--整合Facebook官方SDK