2016-01-14 1 views
1

В моем приложении я получаю URL-адрес из объекта parse.com.Открыть URL-адрес от действия кнопки в Swift

Я хочу открыть браузер устройства и показать URL-адрес, полученный от Parse, когда пользователь нажимает кнопку.

Это действие:

@IBAction func botonNuevos(sender: AnyObject) { 

     let query = PFQuery(className: "datos_contacto") 
     query.getObjectInBackgroundWithId("H52ZxGm3U8", block: { 
      (questionObject: PFObject?, error: NSError?) -> Void in 

      let webNuevos: AnyObject! = questionObject!.valueForKey("dato_contacto") 

      print(webNuevos) //= http://www.touchemotors.com 

      if let webCallURL = NSURL(string: webNuevos as! String) { 
       let application = UIApplication.sharedApplication() 
       if application.canOpenURL(webCallURL) { 
        application.openURL(webCallURL) 
       } 
       else{ 
        print("failed") 
       } 
      } 


     }) 
    } 

при нажатии на кнопку, журнал показывает полученный URL, но браузер не запускается и отображается какая-либо ошибка.

Пожалуйста, сообщите, что не так в моем коде. Спасибо

+0

Я проверяю, что вы код, и все работает нормально. Посмотрите объектОбъект! .valueForKey ("dato_contacto") значение этого объекта. –

+0

@OlegGordiichuk, я включил его в качестве комментария после печати (webNuevos), полученное значение объекта: http://www.touchemotors.com – mvasco

ответ

1

UPDATE

Наконец, после обсуждения с ФП оказалось, что значение, возвращенное questionObject!.objectForKey("dato_contacto") были пропуски в конце так NSUrl(string:) не разобрать его хорошо.

UPDATE

Вы используете неправильный метод NSObject.valueForKey(). Вместо этого используйте PFObject.objectForKey().

Для прошивки 9:

От here:

Если ваше приложение связанно с или после прошивки 9.0, вы должны объявить URL-адрес схему вы хотите перейти к этому методу. Сделайте это с помощью массива LSApplicationQueriesSchemes в файле Info.plist проекта Xcode . Для каждой схемы URL, которую вы хотите, чтобы ваше приложение использовало этот метод, добавьте его как строку в этом массиве.

Если ваш (IOS 9.0 или более поздней версии) приложение вызывает этот метод с использованием схемы вы не объявленную, метод возвращает ложь, или нет установлен соответствующее приложение для схемы на устройстве.

Добавить http схему LSApplicationQueriesSchemes массива в Info.plist.

+0

Спасибо @mixel. Если я пишу URL прямо в строке, если пусть webCallURL = NSURL (строка: webNuevos as! String) вместо переменной webNuevos, тогда все работает. Браузер запущен и отображается URL. – mvasco

+0

Думаю, я нашел причину, по которой вы получаете эту ошибку. Я обновил свой ответ. – mixel

+0

Спасибо @mixel, но используя objectForKey() или valueForKey() Я получаю тот же результат для webNuevos: http://www.touchemotors.com, а также такое же поведение, браузер не запущен – mvasco

Смежные вопросы