Подтвердить что ты не робот

Кнопка открытия кнопки "Создать" - Swift

Это код, который я сейчас получил, взятый из ответа на аналогичный вопрос.

@IBAction func GoogleButton(sender: AnyObject) {
    if let url = NSURL(string: "www.google.com"){
        UIApplication.sharedApplication().openURL(url)
    }
}

Кнопка называется кнопкой Google, а ее текст - www.google.com.

Как мне открыть ссылку, когда я нажму?

4b9b3361

Ответ 1

Ваш код показывает действие, которое происходит после нажатия кнопки, а не фактическая кнопка. Вам необходимо подключить кнопку к этому действию.

(Я переименовал действие, потому что GoogleButton не подходит для действия)

В коде:

override func  viewDidLoad() {
  super.viewDidLoad()

  googleButton.addTarget(self, action: "didTapGoogle", forControlEvents: .TouchUpInside)
}

@IBAction func didTapGoogle(sender: AnyObject) {
  UIApplication.sharedApplication().openURL(NSURL(string: "http://www.google.com")!)
}

В IB:

enter image description here

Редактировать: в Swift 3 код для открытия ссылки в сафари изменился. Вместо этого используйте UIApplication.shared().openURL(URL(string: "http://www.stackoverflow.com")!).

Редактировать: в Swift 4 UIApplication.shared.openURL(URL(string: "http://www.stackoverflow.com")!)

Ответ 2

Строка, которую вы поставляете для NSURL, не содержит информацию о протоколе. openURL использует протокол для определения того, какое приложение открывает URL-адрес.

Добавление "http://" в вашу строку позволит iOS открыть Safari.

@IBAction func GoogleButton(sender: AnyObject) {
    if let url = NSURL(string: "http://www.google.com"){
        UIApplication.sharedApplication().openURL(url)
    }
}

Ответ 3

поскольку метод openUrl устарел в iOS 10, вот решение для iOS 10

let settingsUrl = NSURL(string:UIApplicationOpenSettingsURLString) as! URL
UIApplication.shared.open(settingsUrl, options: [:], completionHandler: nil)

Ответ 4

  if let url = URL(string: "your URL") {
        if #available(iOS 10, *){
            UIApplication.shared.open(url)
        }else{
            UIApplication.shared.openURL(url)
        }

    }

Ответ 5

Для Swift 3.0:

    if let url = URL(string: strURlToOpen) {
        UIApplication.shared.openURL(url)
    }

Ответ 6

если iOS 9 или выше, лучше использовать SafariServices, поэтому ваш пользователь не покинет ваше приложение.

import SafariServices

let svc = SFSafariViewController(url: url)
present(svc, animated: true, completion: nil)

Ответ 7

В Swift 4

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

Ответ 8

Код, который у вас есть, должен открыть ссылку просто отлично. Я считаю, что вы, вероятно, просто скопировали этот фрагмент кода в свой код. Проблема в том, что компонент интерфейса (кнопка) в интерфейсе (в раскадровке, скорее всего) не подключен к коду. Поэтому система не знает, что когда вы нажимаете кнопку, она должна вызывать этот код.

Чтобы объяснить этот факт системе, откройте файл раскадровки, где находится ваш Google Button, затем в помощнике редактора откройте файл, где находится фрагмент кода func GoogleButton. Щелкните правой кнопкой мыши на кнопке и перетащите строку в фрагмент кода.

Если вы создаете эту кнопку программно, вы должны добавить цель для какого-либо события, например UITouchUpInside. В Интернете много примеров, поэтому это не должно быть проблемой:)

ОБНОВЛЕНИЕ: Как уже отмечалось, вы также должны добавить протокол к ссылке ( "http://" или "https://" ). Он ничего не сделает.

Ответ 9

Для Swift3 код ниже работает нормально

@IBAction func Button(_ sender: Any) { 
   UIApplication.shared.open(urlStore1, options: [:], completionHandler: nil)     
 }

Ответ 10

Этот код работает с Xcode 11

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