2016-07-28 2 views
0

Я знаю, что на этот вопрос ответили за много времени с названием или с другим заголовком. Я пытаюсь под кодом.Ссылка не открыта из приложения в сафари в iOS 9.0, но работает в iOS 9.3

UIApplication.sharedApplication().openURL(videoURL) 

Эта строка кода отлично работает в iOS simulator 8.xx/9.xx и возвращает true. Но когда я пытаюсь запустить свой код в iPhone 9.xx (к сожалению, не имеют IOS 8.xx устройства), затем эту строку

UIApplication.sharedApplication().openURL(videoURL) 

, дает ложные.

Я думал, что мой url содержит https: //, поэтому я попытался изменить его на http: //, но все равно не повезло. Есть ли какая-либо запись в файле .plist где-то. Я предполагаю, но не знаю если так, как это должно быть сделано. Можете ли вы, ребята, помочь мне в этом.

С уважением

+0

Какой у вас URL. Его работая отлично в моем iPhone 9.3.3 –

+0

Я попытался открыть https://www.youtube.com/. Я не знаю, будут ли https и http иметь какое-либо значение. –

ответ

1

Я использовал этот код на реальном устройстве iPhone IOS 9.3.3

let videoURL = "https://www.youtube.com/watch?v=sFY-NDAAgFo" 
UIApplication.sharedApplication().openURL(NSURL(string: videoURL)!) 

Он только что открыл сафари с YouTube видео

Для HTTP нам нужно добавить ключ в Info.plist в настоящее время с iOS 9

Незадолго до вашего последнего dict пишите эти строки в Info.plist в виде исходного кода.

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

enter image description here

В качестве альтернативы вы можете добавить новый ключ и сделать его в качестве словаря и добавить логическое поле, как показано на изображении

+0

Конечно, сейчас –

+0

запись info.plist уже была в моем проекте, и я попытался разрешить videoURL = "https://www.youtube.com/watch?v=sFY-NDAAgFo" UIApplication.sharedApplication(). OpenURL (NSURL (string: videoURL)!), Все еще не удача UIApplication.sharedApplication(). OpenURL (NSURL (string: videoURL)!) Все еще дает false.But на sim его работу. Любой способ спасибо за ответ –

+0

ваш формат url не хорошо.Просто напишите 'let videoURL = https: //www.youtube.com/watch? V = sFY-NDAAgFo' –

0

помните, что с прошивкой 9 и далее вы можете использовать SFSafariViewController

импорт SafariServices

private func openMYUrl(url: NSURL) { 
     if #available(iOS 9.0, *) { 
      let svc = SFSafariViewController(URL: url) 
      svc.delegate = self 
      self.presentViewController(svc, animated: true, completion: nil) 
     } 
     else { 
      UIApplication.sharedApplication().openURL(url) 
     } 
    } 

Примечание: если вы не используете это приложение будет отвергать. в моем случае его .

+0

Нет, это не так. Подобные записи, такие как google, делают причиной отказа. Я только что отправил приложение в прошлом месяце, у которого есть текстовое изображение со ссылками на youtube и многие другие сайты google. Apple никогда не отклонялась и не принималась с первого раза. Зависит от того, что вы используете. Как правило, sdks в настоящее время используют SafariController –

0

Это яблоко ошибка для IOS 9.0.x, которая была исправлена ​​в IOS 9.3.xI я вставив ссылку для тех, кто хочет передать эту ссылку для получения дополнительной info.Thanks Rajan для ответа и предложений

Please go through this apple release note

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