Cara Menetapkan Aplikasi Cocoa Anda sebagai Pembuka Web Default di macOS

Membuat peramban web mungkin terdengar menakutkan, tetapi bagaimana jika Anda ingin aplikasi Cocoa Anda mengambil peran tersebut? Menetapkan aplikasi Anda sebagai peramban web default di macOS tidak hanya memungkinkan tetapi juga memungkinkan Anda untuk meningkatkan pengalaman pengguna dengan memberikan interaksi yang mulus dengan tautan HTTP dan HTTPS. Dalam pos blog ini, kami akan menjelaskan langkah-langkah penting untuk mencapainya.

Masalah

Ketika pengguna mengklik tautan web di aplikasi seperti Mail atau iChat, peramban web default mereka diluncurkan. Jika Anda sedang mengembangkan aplikasi Cocoa dan ingin agar aplikasi Anda yang membuka tautan ini, Anda perlu mengonfigurasi aplikasi Anda untuk menangani tautan HTTP dan HTTPS serta menetapkannya sebagai peramban default.

Solusi

Untuk menjadikan aplikasi Cocoa Anda sebagai peramban web default, Anda dapat mengikuti empat langkah berikut:

1. Tambahkan Skema URL ke Info.plist Aplikasi Anda

Tugas pertama Anda adalah memberi tahu macOS bahwa aplikasi Anda dapat menangani permintaan HTTP dan HTTPS. Ini dilakukan dengan memodifikasi file Info.plist aplikasi Anda. Berikut adalah cara melakukannya:

  1. Buka file Info.plist aplikasi Anda.
  2. Tambahkan cuplikan XML berikut:
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>http URL</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>http</string>
        </array>
    </dict>
    <dict>
        <key>CFBundleURLName</key>
        <string>Secure http URL</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>https</string>
        </array>
    </dict>
</array>

Dengan penambahan ini, Anda menyatakan bahwa aplikasi Anda dapat menangani kedua jenis skema URL tersebut.

2. Tulis Metode Penangkap URL

Selanjutnya, Anda perlu membuat metode yang akan dipicu ketika aplikasi Anda diminta untuk membuka URL. Berikut adalah contoh sederhana:

- (void)getUrl:(NSAppleEventDescriptor *)event 
    withReplyEvent:(NSAppleEventDescriptor *)replyEvent 
{
    NSString *urlStr = [[event paramDescriptorForKeyword:keyDirectObject] 
        stringValue];

    // TODO: Kode penanganan URL kustom Anda di sini
}

Dalam metode ini, Anda pada akhirnya akan mengimplementasikan logika untuk menangani URL setelah diambil.

3. Daftarkan Metode Penangkap URL

Sekarang setelah Anda memiliki metode penangkap URL, Anda perlu mendaftarkannya dengan Manajer Peristiwa macOS. Anda dapat melakukan ini dengan menambahkan kode berikut ke bagian inisialisasi aplikasi Anda:

NSAppleEventManager *em = [NSAppleEventManager sharedAppleEventManager];
[em setEventHandler:self 
  andSelector:@selector(getUrl:withReplyEvent:) 
  forEventClass:kInternetEventClass 
  andEventID:kAEGetURL];

Selain itu, untuk mendukung aplikasi yang lebih lama, daftarkan untuk Peristiwa Apple WWW!/OURL:

[em setEventHandler:self 
  andSelector:@selector(getUrl:withReplyEvent:) 
  forEventClass:'WWW!' 
  andEventID:'OURL'];

4. Atur Aplikasi Anda sebagai Pembuka Default

Terakhir, Anda perlu menetapkan aplikasi Anda sebagai penangkap default untuk skema HTTP dan HTTPS menggunakan API Layanan Peluncuran. Tambahkan kode berikut:

CFStringRef bundleID = (CFStringRef)[[NSBundle mainBundle] bundleIdentifier];
OSStatus httpResult = LSSetDefaultHandlerForURLScheme(CFSTR("http"), bundleID);
OSStatus httpsResult = LSSetDefaultHandlerForURLScheme(CFSTR("https"), bundleID);
// TODO: Periksa httpResult dan httpsResult untuk kesalahan

Tip: Ini adalah praktik yang baik untuk meminta izin pengguna sebelum mengubah pengaturan peramban default mereka.

Skema URL Kustom

Selain skema URL standar, Anda juga dapat menerapkan skema kustom Anda sendiri. Untuk menghindari konflik dengan aplikasi lain, bijaksana untuk mendasarkan skema kustom Anda pada pengidentifikasi bundel aplikasi Anda. Misalnya, jika ID bundel Anda adalah com.example.MyApp, pertimbangkan untuk menerapkan konfigurasi seperti x-com-example-myapp://.

Kesimpulan

Dengan mengikuti panduan sederhana ini, Anda dapat mengubah aplikasi Cocoa Anda menjadi peramban web default bagi pengguna di macOS. Ini tidak hanya meningkatkan utilitas aplikasi tetapi juga memberikan pengalaman web yang lebih baik dan terintegrasi untuk pengguna. Ingatlah untuk selalu memprioritaskan persetujuan pengguna saat mengubah pengaturan default untuk transisi yang lebih mulus.

Jangan ragu untuk mengajukan pertanyaan lebih lanjut atau meninggalkan komentar jika Anda mengalami masalah selama implementasi!