2012-06-20 12 views
10

Tôi có trang web trên điện thoại di động liên kết đến video trên youtube. Trên Android, nhấp vào liên kết này sẽ trả về một hộp thoại yêu cầu người dùng "Hoàn thành hành động bằng cách sử dụng" trình duyệt của họ hoặc ứng dụng Youtube.Buộc video để mở trong ứng dụng Youtube trên Android

Có cách nào bỏ qua màn hình này và chỉ phát video trong ứng dụng Youtube không? (Ví dụ: với URL youtube: //.)

Cảm ơn!

Trả lời

17

Đây là cách bạn có thể làm điều đó:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube://" + id)); 
startActivity(intent); 

id là định danh sau khi questionmark trong url. Ví dụ: youtube.com/watch?v= ID

Một cách khác là:

Intent videoIntent = new Intent(Intent.ACTION_VIEW); 
videoIntent.setData(url); 
videoIntent.setClassName("com.google.android.youtube", "com.google.android.youtube.WatchActivity"); 
startActivity(videoIntent); 

......

+0

Cảm ơn, tôi sẽ thử URL vnd.youtube:// ngày mai và xem nó có hoạt động không. – tba

+0

Có cách nào để kiểm tra (từ trang web trên thiết bị di động) cho dù thiết bị có thể mở URL vnd.youtube:// không? Tôi muốn trang web của mình mở vnd.youtube:// URL cho Android và http://youtube.com/watch thông thường? liên kết cho iOS. – tba

+0

Ít nhất là không ai mà tôi biết, xin lỗi – Tim

7

Cách tốt nhất

try { 

    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube://" + id)); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 

} catch (ActivityNotFoundException e) { 

    // youtube is not installed.Will be opened in other available apps 

    Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("https://youtube.com/watch?v=" + id)); 
    startActivity(i); 
} 
+0

Tôi đã cố gắng sử dụng giải pháp của bạn nhưng tôi nhận được "không thể giải quyết nội dung biểu tượng". Bạn có thể giải thích cho tôi nội dung này là gì không? –

+0

@MarcosGuimaraes cập nhật – user3716835

+0

Cảm ơn bạn rất nhiều! Nó hoạt dộng bây giờ. –

2

Thử để sử dụng chuyển hướng JavaScript như sau:

window.location = "vnd.youtube://the.youtube.video.url"; 

một cách toàn diện hơn:

if(/Android/i.test(navigator.userAgent)) { 
    // If the user is using an Android device. 
    setTimeout(function() { window.location = "market://details?id=com.google.android.youtube"; }, 25); 
    window.location = "vnd.youtube://www.youtube.com/watch?v=yourVideoId"; 
} 

Nếu ứng dụng của Youtube bị vô hiệu hóa, chức năng thời gian chờ sẽ chuyển hướng bạn đến ứng dụng YouTube trên các cửa hàng chơi để cho bạn kích hoạt ứng dụng. Chuyển hướng thứ hai sẽ bật lên và phát video youtube trên ứng dụng YouTube dành cho Android.

Nếu bạn đã chuyển sang ứng dụng YouTube trong khoảng thời gian chờ, chức năng hết giờ sẽ không được gọi và bạn không chuyển sang cửa hàng trò chơi nhưng vẫn ở trong ứng dụng YouTube.

+0

Tôi thích giải pháp này. Điều này có làm việc cho iOS không? –