iOS Facebook Twitter Paylaşım (Swift-ObjC)

Merhaba Arkadaşlar,

mobilhanem.com üzerinden anlattığımız/yayınladığımız derslere iOS’ta Facebook Twitter Paylaşım ile devam ediyoruz.Bundan sonraki ios derslerimize hem swift hem objective c kodları ile devam edeceğiz.

Bugünkü dersimiz başlığından da anlaşıldığı üzere facebook ve twitter paylaşımı hakkında.Facebook twitter paylaşımı uygulama içinden paylaşım sağlar.En büyük faydası ise uygulamamızdan paylaşım yapıldığında uygulamamızın reklamının da yapılmış olmasıdır.

Genel olarak zor bilinen facebook ve twitter paylaşımı aslında sanıldığı kadar zor bir şey değil.Ben yine örnek bir uygulama üzerinden anlatmaya çalıştım.Lafı fazla uzatmadan önce Objective-c Kodlarını sonrasında ise Swift kodlarını paylaşacağım.Kodlar üzerinde gerekli açıklamaları yapmaya çalıştım.

Not: Bu dersimde UIActionSheet yapısınıda kullandım.Bu konu hakkında dersime buradan ulaşabilirisiniz.

[wpdm_file id=32]

Objective-C

ViewController.h

//////
//////

#import 
#import 

// import etmeyi ve  extend etmeyi unutmayalım.

@interface ViewController : UIViewController

- (IBAction)paylas:(id)sender;//Paylas  butonuna tıklandığında çalısacak metod 

@end

ViewController.m

//////
//////

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)paylas:(id)sender {//Bu kısım altta açılacak action sheet için detaylı bilgiyi önceki derslerimde bulabilrsinz
    UIActionSheet *popup  =  [[UIActionSheet alloc] initWithTitle:@"Paylaş" delegate:self cancelButtonTitle:@"Vazgeç" destructiveButtonTitle:nil otherButtonTitles:
                  @"Facebook",
                  @"Twitter",
                  nil];
    
    popup.tag = 1;
    [popup showInView:[UIApplication sharedApplication].keyWindow];
    
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {//açılan action sheet te butonlar tıklanınca
    
    switch (buttonIndex) {
            //Facebok ve twitter paylaşımın aktif olması için   import edilmesi şart

        case 0:
            //İlk buton yani Facebook butonu ise
            if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]){//Facebook login olunmuş mu.Ayarlar kısmından facebook login olmanız gerekli
                
                SLComposeViewController *facebookSheet = [SLComposeViewController
                                                          composeViewControllerForServiceType:SLServiceTypeFacebook];//facebookSheet objesi oluşturuldu.
                
                [facebookSheet setInitialText:@"Mobilhanem Facebook Paylaşım"];//başlık
                [facebookSheet addURL:[NSURL URLWithString:@"http://www.mobilhanem.com"]];//Link
                //[facebookSheet addImage:img];//Resim eklemek istersek
                [facebookSheet setCompletionHandler:^(SLComposeViewControllerResult result) {//Paylaştıktan sonra
                    
                    switch (result) {
                        case SLComposeViewControllerResultCancelled:
                            NSLog(@"İptal Edildi");
                            break;
                        case SLComposeViewControllerResultDone:
                            NSLog(@"Başarıyla Paylaşıldı");
                            break;
                        default:
                            break;
                    }
                }];
                
                [self presentViewController:facebookSheet animated:YES completion:nil];
                
            }else{//Eğer Ayarlar kısmından Facebook login yapılmadıysa uyarı veriyoruz
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Uyarı"
                                                                message:@"Ayarlar Ekranından Facebook Login İşlemini Gerçekleştirerek Paylaşım Yapabilirsiniz."
                                                               delegate:self
                                                      cancelButtonTitle:@"Tamam"
                                                      otherButtonTitles:nil];
                [alert show];
            }
            break;
        case 1:
            //İkinci buton yani Twitter butonu ise
            if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
            {
                SLComposeViewController *tweetSheet = [SLComposeViewController
                                                       composeViewControllerForServiceType:SLServiceTypeTwitter];//tweetSheet objesi oluşturuldu
                
                
                [tweetSheet setInitialText:@"Mobilhanem Twitter Paylaşım"];//Başlık
                [tweetSheet addURL:[NSURL URLWithString:@"http://www.mobilhanem.com"]];//Link
                //[tweetSheet addImage:img];//image eklemek için
                [tweetSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
                    
                    switch (result) {
                        case SLComposeViewControllerResultCancelled:
                            NSLog(@"İptal Edildi");
                            break;
                        case SLComposeViewControllerResultDone:
                            NSLog(@"Başarıyla Paylaşıldı");
                            break;
                        default:
                            break;
                    }
                }];
                
                [self presentViewController:tweetSheet animated:YES completion:nil];
            }else{//Twitter Login yapılmamışsa
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Uyarı"
                                                                message:@"Ayarlar Ekranından Twitter Login İşlemini Gerçekleştirerek Paylaşım Yapabilirsiniz."
                                                               delegate:self
                                                      cancelButtonTitle:@"Tamam"
                                                      otherButtonTitles:nil];
                [alert show];
            }
            
            break;
            
        default:
            break;
    }
}
@end

Evet arkadaşlar şimdi Swift kodlarını paylaşıyorum.

Swift

ViewController.swift

//////
///////
//
//  ViewController.swift
//  Swift Facebook Twitter Share
//
//  Created by taha on 31/10/14.
//  Copyright (c) 2014 mobilhanem.com. All rights reserved.
//

import UIKit

import Social

// import etmeyi ve  extend etmeyi unutmayalım.

class ViewController: UIViewController,UIActionSheetDelegate {
    

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    @IBAction func paylas(sender: AnyObject) {//Bu kısım altta açılacak action sheet için ,detaylı bilgiyi önceki derslerimde bulabilrsinz
        let actionSheet = UIActionSheet(title: "Paylaş", delegate: self, cancelButtonTitle: "Cancel", destructiveButtonTitle: nil, otherButtonTitles: "Facebook", "Twitter")
        actionSheet.showInView(self.view)
        /*
        */
    }
    
    func actionSheet(actionSheet: UIActionSheet!, clickedButtonAtIndex buttonIndex: Int)
    {//açılan action sheet te butonlar tıklanınca

        switch buttonIndex{
            
        case 1:
            if SLComposeViewController.isAvailableForServiceType(SLServiceTypeFacebook){
                
                
                var facebookSheet:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)//facebookSheet objesi oluşturuldu.
                
                
                facebookSheet.setInitialText("Mobilhanem Facebook Paylaşımı") //baslik
                facebookSheet.addURL( NSURL(string:"http://www.mobilhanem.com")) //link
                //facebookSheet.addImage(<#image: UIImage!#>)//image eklemek için
                self.presentViewController(facebookSheet, animated: true, completion: nil)
                
                
            } else {//Eğer Ayarlar kısmından Facebook login yapılmadıysa uyarı veriyoruz
                
                let alert = UIAlertView()
                alert.title = "Uyarı"
                alert.message = "Ayarlar Ekranından Facebook Login İşlemini Gerçekleştirerek Paylaşım Yapabilirsiniz."
                alert.addButtonWithTitle("Tamam")
                alert.show()
                
                
            }
            break;
        case 2:
            if SLComposeViewController.isAvailableForServiceType(SLServiceTypeTwitter){
                
                
                var tweetSheet:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
                
                
                tweetSheet.setInitialText("Mobilhanem Twitter Paylaşımı");//baslik
                tweetSheet.addURL( NSURL(string:"http://www.mobilhanem.com"));//link
                //tweetSheet.addImage(<#image: UIImage!#>)
                self.presentViewController(tweetSheet, animated: true, completion: nil)
                
                
            } else {//Eğer Ayarlar kısmından Twitter login yapılmadıysa uyarı veriyoruz

                let alert = UIAlertView()
                alert.title = "Uyarı"
                alert.message = "Ayarlar Ekranından Twitter Login İşlemini Gerçekleştirerek Paylaşım Yapabilirsiniz."
                alert.addButtonWithTitle("Tamam")
                alert.show()
            }
            break;
        default:
            break;
            //Some code here..
            
        }
    }

}


Her iki kodda’da “Social.h” import etmeyi ve “ActionSheetDelegate” ‘i extend etmeyi unutmayalım.

Not:Buraya not olarak da eklemek istiyorum.Swift kodları İos 7’de çok stabil çalışmadığını farkettim.Benim tavsiyem Swift ile proje geliştirecekseniz direk İos 8 ve üzeri sürümlerde geliştirme yapın. İos 7 ve üzeri yapmak istiyorsanız benim şahsi fikrim Objective-C ile devam edin.

Bu dersimde anlatmak istediklerim bu kadar. Soru ,görüş ve önerilerinizi çekinmeden yorum bırakabilirsiniz.

Sizlerden ricamız facebook.com/mobilhanem sayfamızı beğenmenizdir.Birdahaki dersimde görüşmek dileğiyle kendinize iyi bakın.

0

Taha Kırca

iOS & Android & Apple Watch Developer, Mobilhanem.com yazarı, Karadeniz Uşağu, Ordu Sevdalısı

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?