iOS開發~社區分享

1、概要

隨着iOS平臺逐漸成熟,連最初讓人惱火的社區分享功能現在都變的幾行代碼就可以搞定,下面分享下“分享”功能原生實現。


2、實現

iOS6之前使用TWTweetComposeViewController實現分享功能,但iOS6之後改用SLComposeViewController實現,實現方式很簡單,而且大同小異,下面看看SLComposeViewController如何實現,由於iOS5逐漸的淡出人們的視野,所以TWTweetComposeViewController可以忽略了!

以新浪微博分享爲例:首先導入框架 #import <Social/Social.h>,不多說了,iOS開發基礎內容。

- (void)shareWeibo {
    
    if([SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
        SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
        SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){
            if (result == SLComposeViewControllerResultCancelled) {
                NSLog(@"取消");
            } else {
                NSLog(@"分享成功");
            }
            
            [controller dismissViewControllerAnimated:YES completion:Nil];
        };
        controller.completionHandler =myBlock;

        [controller setInitialText:@"我是此微博標題,告訴你可以點網頁連接,可以跳轉到百度首頁!"];
        [controller addURL:[NSURL URLWithString:@"http://www.baidu.com"]];
        [controller addImage:[UIImage imageNamed:@"fb.png"]]; //微博中的圖片,那張黑色的小圖片
        
        [self presentViewController:controller animated:YES completion:Nil];
        
    }
    else{
        NSLog(@"分享功能不可用,請打開設置並找到相應分享平臺,然後帳號登錄。相當於在iOS設備中配置相應分享平臺,和配置郵箱類似!");
    }
}


效果圖:

注意:這個分享框是系統提供的,不需要自定義



蘋果還提供了其它幾種分享渠道:

 SLServiceTypeTwitter NS_AVAILABLE(10_8, 6_0);
 SLServiceTypeFacebook NS_AVAILABLE(10_8, 6_0);
 SLServiceTypeSinaWeibo NS_AVAILABLE(10_8, 6_0);
 SLServiceTypeTencentWeibo NS_AVAILABLE(10_9, 7_0);
 SLServiceTypeLinkedIn NS_AVAILABLE(10_9, NA);


補充:

1、如果發現點擊分享後無反應,應該是沒有配置相應分享平臺的帳號,打開設置,找到相應平臺,然後登錄。然後在點擊Demo中的分享就可以了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章