Bagaimana saya bisa meluncurkan Safari dari aplikasi iPhone?


127

Ini mungkin pertanyaan yang agak jelas, tetapi bisakah Anda meluncurkan browser Safari dari aplikasi iPhone?

Jawaban:


200

harus sebagai berikut:

NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];

if (![[UIApplication sharedApplication] openURL:url]) {
    NSLog(@"%@%@",@"Failed to open url:",[url description]);
}

Apakah ini akan diperhitungkan dalam penggunaan memori aplikasi Anda? Juga, apakah ada cara yang baik untuk kembali ke aplikasi Anda (seperti fitur login di situs jejaring sosial)?
brendan

1
@brendan dugaan saya tidak akan seperti yang saya asumsikan 'tampilan web' diluncurkan dalam aplikasi safari sehingga akan jatuh dalam proses itu
surtyaar

12
ditipu jawaban 5/9/09 sebelumnya
Barett

2
@ Barett: Sebenarnya tidak begitu, karena itu jawaban 9/21/09
Bergi

4
IMO panggilan API cukup mirip sehingga jawaban ini akan lebih baik diterapkan sebagai edit atau komentar pada jawaban sebelumnya.
Barett

52

Aplikasi UIA memiliki metode yang disebut openURL:

contoh:

NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];

if (![[UIApplication sharedApplication] openURL:url]) {
  NSLog(@"%@%@",@"Failed to open url:",[url description]);
}

16

Anda dapat membuka url di safari dengan ini:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.google.com"]];

4

Dengan iOS 10 kami memiliki satu metode berbeda dengan penangan selesai :

ObjectiveC:

NSDictionary *options = [NSDictionary new];
//options can be empty
NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];
[[UIApplication sharedApplication] openURL:url options:options completionHandler:^(BOOL success){
}];

Cepat:

let url = URL(string: "http://www.stackoverflow.com")
UIApplication.shared.open(url, options: [:]) { (success) in
}

2

Mungkin seseorang dapat menggunakan versi Swift:

Dalam cepat 2.2:

UIApplication.sharedApplication().openURL(NSURL(string: "https://www.google.com")!)

Dan 3.0:

UIApplication.shared().openURL(URL(string: "https://www.google.com")!)

2

Dalam Swift 4 dan 5, karena OpenURL didepresiasi, cara mudah untuk melakukannya adalah adil

if let url = URL(string: "https://stackoverflow.com") {
    UIApplication.shared.open(url, options: [:]) 
}

Anda juga bisa menggunakan SafariServices. Sesuatu seperti jendela Safari di dalam aplikasi Anda.

import SafariServices

...

if let url = URL(string: "https://stackoverflow.com") {
    let safariViewController = SFSafariViewController(url: url)        
    self.present(safariViewController, animated: true)
}

Sementara potongan kode ini dapat menyelesaikan pertanyaan, termasuk penjelasan membantu meningkatkan kualitas respons Anda. Ingatlah bahwa Anda menjawab pertanyaan untuk pembaca di masa depan, dan orang-orang itu mungkin tidak tahu alasan untuk saran kode Anda.
Stefan Crain

1

Di Swift 3.0, Anda dapat menggunakan kelas ini untuk membantu Anda berkomunikasi. Pemelihara kerangka kerja telah mencabut atau menghapus jawaban sebelumnya.

mengimpor UIKit

kelas InterAppCommunication {
    static func openURI (_ URI: String) {
        UIApplication.shared.open (URL (string: URI) !, opsi: [:], completionHandler: {(succ: Bool) di cetak ("Selesaikan! Sukses? \ (Succ)")})
    }
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.