Di halaman pengaturan, saya ingin menyertakan tiga tautan
- Situs dukungan aplikasi saya
- Tutorial aplikasi YouTube
- Situs utama saya (yaitu: ditautkan ke label 'Created by Dale Dietrich'.)
Saya telah mencari situs ini dan web serta dokumentasi saya dan saya tidak menemukan apa pun yang jelas.
CATATAN: Saya tidak ingin membuka halaman web di dalam aplikasi saya. Saya hanya ingin mengirim tautan ke Safari dan tautan itu terbuka di sana. Saya telah melihat sejumlah aplikasi melakukan hal yang sama di halaman Pengaturan mereka, jadi itu harus dimungkinkan.
ios
url
mobile-safari
Dale Dietrich
sumber
sumber
Jawaban:
Inilah yang saya lakukan:
Saya membuat IBAction di file header .h sebagai berikut:
Saya menambahkan UIButton pada halaman Pengaturan yang berisi teks yang ingin saya tautkan.
Saya menghubungkan tombol ke IBAction di File Owner dengan tepat.
Kemudian terapkan yang berikut ini:
Objektif-C
Cepat
(IBAction di viewController, bukan file header)
sumber
Sintaks Swift:
Sintaks Swift Baru untuk iOS 9.3 dan sebelumnya
Pada beberapa versi baru Swift (mungkin swift 2?), UIApplication.sharedApplication () sekarang menjadi UIApplication. Shared (membuat penggunaan properti komputer yang lebih baik, saya kira). Selain itu URL tidak lagi dapat secara implisit dikonversi ke NSURL, harus secara eksplisit dikonversi dengan!
Sintaks Swift Baru pada iOS 10.0
Metode openURL telah ditinggalkan dan diganti dengan metode yang lebih fleksibel yang mengambil objek opsi dan penangan penyelesaian asinkron pada iOS 10.0
sumber
openURL(_:)
sudah ditinggalkan di iOS 10.0, sebagai gantinya Anda harus memanggil metode instanceopen(_:options:completionHandler:)
pada aplikasi UIA.if let url = NSURL(string:"http://www.reddit.com/") { UIApplication.shared.open(url) }
akan selalu melayani Anda dengan lebih baik. Mungkin inginassert
dan kesalahan dalamelse
pernyataan untuk menangkap kesalahan ketik.Di sini diperlukan satu pemeriksaan agar url yang akan dibuka dapat dibuka oleh perangkat atau simulator atau tidak. Karena beberapa kali (mayoritas dalam simulator) saya menemukan itu menyebabkan crash.
Objektif-C
Swift 2.0
Cepat 4.2
sumber
canOpenURL
. Saya tidak mengerti mengapa Anda tidak sekadar meneleponopenURL:url
dan jika gagal, atasi kegagalan itu.canOpenURL
terutama digunakan untuk mendeteksi pemasangan aplikasi tanpa meninggalkan aplikasi saat ini.openURL(_:)
sudah ditinggalkan di iOS 10.0, sebagai gantinya Anda harus memanggil metode instanceopen(_:options:completionHandler:)
pada aplikasi UIA.Lihatlah
-openURL:
metode pada aplikasi UIA. Ini akan memungkinkan Anda untuk mengirimkan instance NSURL ke sistem, yang akan menentukan aplikasi apa yang akan membukanya dan meluncurkan aplikasi itu. (Ingatlah bahwa Anda mungkin ingin memeriksa-canOpenURL:
dulu, kalau-kalau URL tidak dapat ditangani oleh aplikasi yang saat ini diinstal pada sistem - meskipun ini mungkin bukan masalah untukhttp://
tautan biasa .)sumber
openURL(_:)
sudah ditinggalkan di iOS 10.0, sebagai gantinya Anda harus memanggil metode instanceopen(_:options:completionHandler:)
pada aplikasi UIA.Dan, jika Anda tidak yakin apakah URL yang disediakan
text
memiliki skema:sumber
text
sini) tidak akan dikodekan dengan keras dan Anda memerlukan kode seperti ini.Versi Objective-C yang tidak usang adalah:
sumber
Swift 3.0
Ini mendukung perangkat yang menjalankan versi iOS yang lebih lama juga
sumber
Solusi Swift 3 dengan tombol Selesai
Jangan lupa
import SafariServices
sumber
Karena jawaban ini sudah usang sejak iOS 10.0, jawaban yang lebih baik adalah:
y id Tujuan-c
sumber
openURL ( :) sudah tidak digunakan lagi di iOS 10.0, sebagai gantinya Anda harus menggunakan metode instance berikut pada aplikasi UIA: open ( : options: completionHandler :)
Contoh menggunakan Swift
Ini akan membuka " https://apple.com " di Safari.
https://developer.apple.com/reference/uikit/uiapplication/1648685-open
sumber
Di SWIFT 3.0
sumber
Swift 5:
Pemakaian:
Referensi:
OpenURL di iOS10
sumber
Coba ini:
sumber
Di Swift 1.2, coba ini:
sumber
Solusi Swift 4:
sumber