最近因為在開發公司產品的關係需要寫MAC OSX的app,雖然說跟iPhone上開發差不多,但是有不少小地方不一樣
今天在寫扣的時候被老闆要求需要將公司的網頁PO上FB的塗鴉牆上,剛開始以為要用Facebook的SDK去實現,結果好死不死的Facebook SDK上面都寫著for iOS!!囧~上網查了一下有些人說可以直接import iOS的SDK到project裏面,原本想試試看,但礙于進度壓力,只好先搜尋看看有沒有別人現成的code!QQ!結果找來找去都沒找到,還好很幸運的在youtube上看到有人用Social.framework來完成!這不是我以前學過的嗎XD,只是在OSX上和iOS上有些不同,在OSX上的寫法如下:
1. 首先需要在Build Phases內加入Social.framework
2. import Social.h
#import <Cocoa/Cocoa.h> #import <Social/Social.h> //需要使用NSSharingServiceDelegate protocol @interface ViewController : NSViewController<NSSharingServiceDelegate>
3. PO文到Facebook的code template
- (IBAction)facebookShareAction:(id)sender { NSSharingService *service = [NSSharingService sharingServiceNamed:NSSharingServiceNamePostOnFacebook]; service.delegate = self; NSMutableString *urlString = [NSMutableString stringWithFormat:@"http://www.leaderg.com/mysng/live?s=%@&p=%@", [[NSUserDefaults standardUserDefaults] objectForKey:@"robotSn"], [[NSUserDefaults standardUserDefaults] objectForKey:@"share"]]; [service performWithItems:[NSArray arrayWithObject:urlString]]; }
4. PO文到twitter的code template
- (IBAction)twitterShareAction:(id)sender { NSSharingService *service = [NSSharingService sharingServiceNamed:NSSharingServiceNamePostOnTwitter]; service.delegate = self; NSMutableString *urlString = [NSMutableString stringWithFormat:@"http://www.leaderg.com/mysng/live?s=%@&p=%@", [[NSUserDefaults standardUserDefaults] objectForKey:@"robotSn"], [[NSUserDefaults standardUserDefaults] objectForKey:@"share"]]; [service performWithItems:[NSArray arrayWithObject:urlString]]; }
之後按下button的結果如下:
上面的code非常簡單,主要為四個步驟:
- 先create一個NSSharingService的物件
- 將NSSharingService的delegate設為self
- 將PO文的內容存到NSString中
- 把內容用一個NSArray給NSSharingService物件去perform
Reference:
PS. 上面的教學和筆記不太一樣但想法相同
沒有留言:
張貼留言