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çinimport 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
Yorum Yaz