2014-11-17 31 views
5

Tôi có webview hiển thị youtube video:Khởi chạy ứng dụng YouTube trên thiết bị iOS

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) 
} 

liên kết HTML trông như thế này:

<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> 

Đó hoạt động hoàn hảo, nhưng tôi cũng muốn cho phép người dùng để xem nó trên ứng dụng youtube. Có thể tạo liên kết trong chế độ xem web khởi chạy ứng dụng YouTube (nếu được cài đặt trên thiết bị) không?

Bất kỳ trợ giúp nào được đánh giá cao.

+0

bản sao có thể có của [Ứng dụng YouTube mở YouTube với truy vấn (sơ đồ url)] (http://stackoverflow.com/ câu hỏi/18695537/ios-open-youtube-app-with-query-url-scheme) –

Trả lời

8

Bạn có thể sử dụng này:

UIApplication.sharedApplication().openURL("youtube://XXXXXX") 

nơi XXXXXX là mã của video trong youtube.

+0

Cảm ơn sự giúp đỡ! – Jay

12

Vì Youtube chưa được cài đặt sẵn trên điện thoại, bạn nên bảo vệ điều này bằng cách kiểm tra URL sau đó quay lại sử dụng safari nếu chúng chưa cài đặt youtube.

Thêm phím này để info.plist của bạn

<key>LSApplicationQueriesSchemes</key> 
<array> 
    <string>youtube</string> 
</array> 

Sau đó, đây là đoạn code đó sẽ dự phòng để Safari nếu ứng dụng Youtube không được cài đặt.

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) 
+2

Đối với iOS 9, bạn cũng cần đặt 'LSApplicationQueriesSchemes' trong' info.plist' thành một mảng chứa 'youtube' http://stackoverflow.com/questions/40119595/canopenurl-not-working-in-ios- 10 –

0

Swift 3

UIApplication.shared.openURL(URL(string: "http://youtube.com")!)

nếu ứng dụng YouTube không được cài đặt, nó sẽ mở Safari (trang web)

+0

Nó không hoạt động. Luôn mở Safari. –

+0

@TeodorCiuraru nó sẽ mở ứng dụng YouTube khi được cài đặt; tôi đang sử dụng nó trong một ứng dụng sản xuất cho thấy đoạn giới thiệu phim hoặc chuỗi video. Tôi đang sử dụng iOS 10.2. –

+0

Phải có một cài đặt khác được định cấu hình. Tôi đang sử dụng nó trong cùng một cấu hình và nó bật lên chỉ Safari. –

2

Cập nhật cho Swift 3 và iOS 10+

OK, có hai bước dễ dàng để đạt được điều này:

Trước tiên, bạn phải sửa đổi Info.plist để liệt kê Youtube với LSApplicationQueriesSchemes. Đơn giản chỉ cần mở Info.plist như một Source Code, và dán này:

<key>LSApplicationQueriesSchemes</key> 
<array> 
    <string>youtube</string> 
</array> 

Sau đó, bạn có thể mở bất kỳ URL Youtube bên trong ứng dụng Youtube bằng cách đơn giản thay https:// với youtube://. Dưới đây là một mã hoàn chỉnh, bạn có thể liên kết mã này với bất kỳ nút nào bạn có như một Hành động:

@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) 
    } 

} 
Các vấn đề liên quan