我有webview显示youtube视频:
class ViewController: UIViewController {
@IBOutlet var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL(string: "http://www.cast.html")
let request = NSURLRequest(URL: url!)
webView.loadRequest(request)
}
HTML链接如下所示:
<div class="h_iframe">
<iframe webkit-playsinline height="480" width="2" src="https://www.youtube.com/embed/ru1_lI84Wkw?feature=player_detailpage&playsinline=1" frameborder="0" allowfullscreen></iframe></div>
完美无缺,但我也想让用户在youtube应用上观看。 是否可以在webview中创建启动YouTube应用程序的链接(如果已安装在设备上)?
任何帮助表示感谢。
答案 0 :(得分:16)
由于手机上没有预先安装Youtube,因此最好通过测试网址来保护这一点,如果他们没有安装youtube,则可以使用Safari进行保护。
将此密钥添加到info.plist
<key>LSApplicationQueriesSchemes</key>
<array>
<string>youtube</string>
</array>
如果未安装Youtube应用程序,这是将回溯到Safari的代码。
let youtubeId = "vklj235nlw"
var url = URL(string:"youtube://\(youtubeId)")!
if !UIApplication.shared.canOpenURL(url) {
url = URL(string:"http://www.youtube.com/watch?v=\(youtubeId)")!
}
UIApplication.shared.open(url, options: [:], completionHandler: nil)
答案 1 :(得分:13)
您可以使用:
UIApplication.sharedApplication().openURL("youtube://XXXXXX")
其中XXXXXX是youtube中视频的代码。
答案 2 :(得分:4)
Swift 3和iOS 10 +的更新
好的,有两个简单的步骤来实现这一目标:
首先,您必须修改Info.plist
以Youtube
列出LSApplicationQueriesSchemes
。只需打开Info.plist
作为源代码,然后粘贴:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>youtube</string>
</array>
之后,您只需将https://
替换为youtube://
即可在Youtube应用程序中打开任何Youtube网址。这是一个完整的代码,您可以将此代码链接到您作为操作的任何按钮:
@IBAction func YoutubeAction() {
let YoutubeID = "Ktync4j_nmA" // Your Youtube ID here
let appURL = NSURL(string: "youtube://www.youtube.com/watch?v=\(YoutubeID)")!
let webURL = NSURL(string: "https://www.youtube.com/watch?v=\(YoutubeID)")!
let application = UIApplication.shared
if application.canOpenURL(appURL as URL) {
application.open(appURL as URL)
} else {
// if Youtube app is not installed, open URL inside Safari
application.open(webURL as URL)
}
}
答案 3 :(得分:0)
Swift 3
UIApplication.shared.openURL(URL(string: "http://youtube.com")!)
如果未安装YouTube应用,则会打开Safari(网页)