Membagikan di iOS

Setelah Anda mengintegrasikan Facebook Login, Facebook Sharing, atau Facebook Gaming, Peristiwa Aplikasi tertentu dicatat dan dikumpulkan secara otomatis untuk Pengelola Peristiwa, kecuali Anda menonaktifkan Pencatatan Peristiwa Aplikasi Otomatis. Kami menyarankan semua developer aplikasi menggunakan Facebook Login, Facebook Sharing, atau Facebook Gaming untuk memahami cara kerja fungsi ini. Untuk detail tentang informasi apa saja yang dikumpulkan dan cara menonaktifkan Pencatatan Peristiwa Aplikasi Otomatis, lihat Pencatatan Peristiwa Aplikasi Otomatis.

Detail tambahan untuk FB iOS SDK dapat ditemukan di sini.

Panduan ini menjelaskan secara rinci cara mengaktifkan bagikan dari aplikasi iOS Anda ke Facebook. Apabila seseorang membagikan dari aplikasi Anda, kontennya muncul di Linimasa dan Kabar teman mereka.

Prasyarat

Sebelum menambahkan bagikan ke aplikasi, Anda harus:

  • Menambahkan Facebook SDK untuk iOS ke lingkungan pengembangan seluler Anda
  • Mengonfigurasi dan menautkan ID aplikasi Facebook
  • Tambahkan ID aplikasi Anda, dan alasan yang mudah dibaca manusia untuk akses foto ke file .plist aplikasi Anda.
  • Menautkan FBSDKShareKit.framework ke proyek Anda.

Aplikasi Anda tidak boleh terlebih dahulu mengisi konten yang akan dibagikan. Ini tidak konsisten dengan Kebijakan Platform Facebook, lihat Kebijakan Developer.

Memulai SDK iOS

Konten Pemodelan

Setiap jenis konten memiliki antarmuka yang dapat Anda gunakan untuk mewakilinya yang sesuai dengan SharingContent. Setelah Anda menetapkan model konten, tambahkan antarmuka bagikan ke aplikasi Anda yang sesuai dengan Sharing atau gunakan kelas ShareDialog yang disediakan.

Pada saat orang membagikan tautan dari aplikasi Anda ke Facebook, tindakan ini menyertakan contentURL dengan tautan yang akan dibagikan. Buat konten bagikan Anda untuk tautan dengan model ShareLinkContent.

Berikut ini contoh bagaimana Anda dapat memicu tindakan bagikan:

guard let url = URL(string: "https://developers.facebook.com") else {
    // handle and return
}

let content = ShareLinkContent()
content.contentURL = url

let dialog = ShareDialog(
    viewController: self,
    content: content,
    delegate: self
)
dialog.show()

Catatan: Jika aplikasi Anda membagikan tautan ke toko iTunes atau Google Play, kami tidak mengirim gambar atau deskripsi yang Anda tentukan pada aplikasi yang dibagikan. Sebagai gantinya kami mengirimkan beberapa informasi aplikasi yang kami ambil dari toko aplikasi secara langsung dengan Webcrawler. Informasi ini mungkin tidak termasuk gambar. Untuk melihat pratinjau berbagi tautan ke iTunes atau Google Play, masukkan URL Anda ke dalam Sharing Debugger.

Foto

Orang dapat membagikan foto dari aplikasi Anda ke Facebook dengan Dialog Bagikan atau dengan antarmuka khusus:

  • Foto harus berukuran kurang dari 12MB
  • Facebook native versi 7.0 ke atas harus terinstal untuk aplikasi iOS

Buat konten berbagi untuk foto dengan model SharePhotoContent.

func imagePickerController(
    _ picker: UIImagePickerController, 
    didFinishPickingMediaWithInfo 
    info: [UIImagePickerController.InfoKey : Any]
) {
    guard let image = info[.originalImage] as? UIImage else {
        // handle and return
        return
    }
    let photo = SharePhoto(
        image: image,
        userGenerated: true
    )
    var content = SharePhotoContent()
    content.photos = [photo]
    // use the content
}

Video

Orang yang menggunakan aplikasi Anda dapat membagikan video ke Facebook dengan dialog Bagikan atau dengan antarmuka khusus:

  • Video harus berukuran kurang dari 50MB.
  • Facebook untuk klien iOS versi 26.0 ke atas harus terinstal.

Buat konten berbagi Anda untuk video dengan model FBSDKShareVideoContent. Untuk daftar semua atribut, lihat referensi FBSDKShareVideoContent.

func imagePickerController(
    _ picker: UIImagePickerController,
    didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]
) {
    let video: ShareVideo

    if #available(iOS 11, *) {
        guard let videoAsset = info[.phAsset] as? PHAsset else {
            return
        }
        video = ShareVideo(videoAsset: videoAsset)
    } else {
        guard let url = info[.referenceURL] as? URL else {
            return
        }
        video = ShareVideo(videoURL: url)
    }
}

Multimedia

Orang yang menggunakan aplikasi Anda dapat membagikan kombinasi foto dan video ke Facebook dengan dialog Bagikan. Perhatikan hal berikut:

  • Facebook untuk klien iOS harus terinstal.
  • Foto harus berukuran kurang dari 12MB dan video harus berukuran kurang dari 50MB.
  • Orang dapat membagikan maksimal 1 video ditambah hingga 29 foto atau 30 foto.

Buat konten bagikan multimedia Anda dengan model ShareMediaContent.

let photo = SharePhoto(...)
let video = ShareVideo(...)

var content = ShareMediaContent()
content.media = [photo, video]

Metode Bagikan

Setelah menangani konten dengan membuat model, Anda dapat memicu dialog Bagikan atau Pesan.

Tombol

Di iOS, Facebook memiliki tombol native untuk memicu bagikan.


Tombol Bagikan

Dengan Tombol Bagikan, Anda akan mengizinkan orang membagikan konten ke linimasa Facebook mereka ke linimasa teman atau di grup. Tombol bagikan akan memanggil dialog Bagikan. Untuk menambahkan tombol Bagikan ke tampilan, tambahkan snippet kode berikut ke tampilan Anda:

var button = FBShareButton()
button.shareContent = content
// Add button to view

Tombol Kirim

Dengan Tombol Kirim, orang dapat mengirimkan foto, video, dan tautan secara pribadi kepada teman dan kontak mereka menggunakan aplikasi Facebook Messenger. Tombol Kirim akan memanggil dialog Pesan. Untuk menambahkan tombol Kirim ke tampilan, tambahkan snippet kode berikut ke tampilan Anda:

var button = SendButton()
button.shareContent = content
// Add button to view

Jika aplikasi Messenger tidak diinstal, tombol Kirim akan diredupkan. Untuk memeriksa apakah tombol Kirim dapat digunakan pada perangkat saat ini, gunakan properti SendButtonisImplicitlyDisabled:

Dialog Bagikan

Untuk menggunakan pengalaman bagikan buatan Facebook, Anda perlu menentukan konten seperti di bagian pemodelan konten di atas, lalu panggil Dialog Bagikan. Misalnya, untuk membagikan tautan dengan Dialog Bagikan:

guard let url = URL(string: "https://developers.facebook.com") else {
    // handle and return
}

let content = ShareLinkContent()
content.contentURL = url

let dialog = ShareDialog(
    viewController: self,
    content: content,
    delegate: self
)
dialog.show()

Pada versi SDK untuk iOS sebelumnya, aplikasi Anda harus memeriksa apakah ada aplikasi Facebook yang terinstal dan native sebelum dapat membuka Dialog Bagikan. Jika seseorang belum menginstal aplikasi, Anda harus menyediakan kode sendiri untuk memanggil dialog fallback.

Sekarang, SDK memeriksa karakteristik native aplikasi Facebook secara otomatis. Jika tidak diinstal, SDK mengalihkan orang ke browser default mereka dan membuka Dialog Beranda.

Jika aplikasi Facebook native terinstal, orang akan melihat Lembar Bagikan di iOS dan bukan beralih ke aplikasi native Facebook untuk iOS.

Dialog Pesan

Dialog Pesan beralih ke aplikasi Messenger native untuk iOS, selanjutnya mengembalikan kontrol ke aplikasi Anda setelah postingan diterbitkan.

MessageDialog(content: content, delegate: delegate).show()

Catatan: Saat ini dialog pesan tidak didukung di iPad.

Integrasi iOS

iOS memasukkan lembar berbagi native yang memungkinkan orang mengirim pembaruan status, foto, video, dan tautan ke Facebook dan menyertakan dukungan pengaturan pemirsa untuk postingan dan menandai postingan dengan lokasi. Facebook SDK mendukung penggunaan pengontrol native ini; pengalaman ini adalah yang dilihat orang di sebagian besar kasus ketika Anda memanggil Dialog Bagikan di Facebook.

Penggunaan lembar berbagi iOS harus mematuhi Kebijakan Developer, termasuk bab 2.3 yang menyatakan bahwa aplikasi tidak boleh diisi terlebih dahulu sebelumnya terkait dengan lembar bagikan. Artinya, aplikasi tidak boleh mengisi kolom Teks awal di lembar bagikan secara otomatis dengan konten yang tidak dimasukkan oleh pengguna aplikasi tersebut.

API ini juga menggunakan blok gaya yang sama seperti bagian lain dari Facebook SDK. Untuk menunjukkan dialog bagikan native di iOS, gunakan:

let dialog = ShareDialog(
    viewController: self,
    content: content,
    delegate: nil
)
dialog.mode = .shareSheet
dialog.show()

Perhatikan bahwa argumen viewController diperlukan agar ada lembar bagikan.

Tagar

Anda dapat menentukan tagar tunggal untuk ditampilkan bersama foto, tautan, atau video yang dibagikan. Tagar ini juga muncul di dialog Bagikan, dan orang dapat menghapusnya sebelum menerbitkan.

Berikut adalah contoh penambahan tagar ke pembagian tautan.

let content = ShareLinkContent()
guard let url = URL(string: "https://developers.facebook.com") else { return }

content.contentURL = url
content.hashtag = Hashtag("#MadeWithHackbook")

Topik Lanjutan

Dengan Tautan Aplikasi Anda dapat menautkan kembali ke aplikasi dari postingan Facebook yang diterbitkan dari aplikasi Anda.

Ketika orang mengeklik postingan Facebook yang diterbitkan dari aplikasi Anda, tindakan ini membuka aplikasi, dan Anda bahkan dapat menautkan ke konten tertentu di dalam aplikasi.

Simulator dan Pengujian iOS

Jika Anda menggunakan Simulator untuk menguji bagikan di aplikasi, Anda akan menemui kesalahan jika mencoba membagikan video atau Foto. Hal ini karena Anda harus menginstal Facebook untuk iOS yang menyediakan Dialog Bagikan. Kami tidak mendukung ini untuk Simulator.

Dalam kasus bagikan tautan, Anda tidak perlu menginstal Facebook untuk iOS sehingga kasus pengujian ini dapat dilakukan. Untuk menguji skenario Bagikan, siapkan perangkat pengujian aktual yang sudah terinstal Facebook untuk iOS.