2016-07-28 80 views
0

我知道这个问题的答案是很多同一时间的标题或不同title.I我想下面的代码。链接无法在iOS 9.0的Safari浏览器中打开应用程序,但可以在iOS 9.3

UIApplication.sharedApplication().openURL(videoURL) 

这行代码在iOS模拟器8.xx/9.xx中正常工作,并返回true。但是,当我尝试运行我在iPhone 9.Xx代码(可惜没有的iOS设备8.xx),那么这行

UIApplication.sharedApplication().openURL(videoURL) 

是给假。

我想,因为我的网址包含https://所以我试图改变它为http://,但仍然没有幸运。是否有任何种类的条目需要在.plist文件somewhere.I承担但不知道如果那是它应该做的。你们能帮我解决这个问题吗?

问候

+0

什么是你的网址。它的工作正常在我的iPhone 9.3.3 –

+0

我试图打开https://www.youtube.com/.I不知道如果HTTPS和HTTP会有所作为。 –

回答

1

我用这个代码的实际设备iPhone iOS上9.3.3

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

它只是打开Safari浏览器与YouTube视频

对于HTTP我们需要添加一个键Info.plist现在iOS 9以上

就在你最后的字典在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在模拟其工作。任何方式感谢您的网址格式为 –

+0

不好。只需写'let videoURL = https://www.youtube.com/watch?v = sFY-NDAAgFo' –

0

从iOS版9记住这起您可以使用SFSafariViewController

import 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

不,它不是那样的。谷歌登录等sdks作出拒绝的理由。我刚刚提交了上个月的应用程序,其中包含youtube和许多其他谷歌网站的链接。苹果公司从未拒绝并接受第一次去。取决于你使用的是什么。通常现在使用SafariController的sdks –

相关问题