自定义Android WebView可在内部打开除YouTube链接之外的所有链接

时间:2013-03-17 22:37:44

标签: android webview youtube

我有一个WebView应用程序,我想表现得像这样:

用户可以关注任何链接,并在同一个WebView中打开新页面,除非目标是YouTube,在这种情况下我需要两种可能的方案:

  1. 打开YouTube Android应用以观看视频
  2. 打开标准浏览器以观看视频。
  3. 我的主要活动如下:

    package com.prgguru.android;
    import android.os.Bundle;
    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.webkit.WebView;
    
    
    @SuppressLint("SetJavaScriptEnabled")
    public class MainActivity extends Activity {
         WebView browser;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            browser=(WebView)findViewById(R.id.webkit);     
            browser.getSettings().setJavaScriptEnabled(true);
            browser.getSettings().setDefaultFontSize(20);
            browser.loadUrl("http://exo-agency.com/funnytube/");   
        }
    }
    

    提前致谢。

1 个答案:

答案 0 :(得分:4)

通过user2180451回答:

我刚编辑为答案:

最终解决了这个问题。

对于任何有这个问题的人来说,我是如何设法让它运作的

这里我留下一个模板主要活动来放入src> MainActivity.java 用你的网址填写

/** YOUR PACKACGE NAME SHOULD GO HERE **/

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.content.Intent;
import android.net.Uri;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
     @ Override

     public void onCreate (Bundle savedInstanceState) {
         super. onCreate (savedInstanceState);
         setContentView (R.layout.main);

         WebView web = (WebView) findViewById (R.id.webView);
         web.getSettings().setJavaScriptEnabled (true);
         web.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
         web.getSettings().setPluginsEnabled (true);
         web.getSettings().setSupportMultipleWindows (false);
         web.getSettings().setSupportZoom (false);
         web.setVerticalScrollBarEnabled (false);
         web.setHorizontalScrollBarEnabled (false);

         web.loadUrl ("THE URL TO YOUR WEBVIEW SITE SHOULD GO HERE");

         web.setWebViewClient(new WebViewClient () {
             @ Override public boolean shouldOverrideUrlLoading(WebView view, String url) {
             if (url.startsWith("vnd.youtube")){
                 startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
                 return true;
             }
             else {
                 return false;
             }
             }
         });
     }

 }

之后,在您的实际网页HTML网络应用中,您可以使用此条目调用YouTube应用播放视频

<a href="vnd.youtube://VIDEOID">WATCH ME</a>

只需将VIDEOID替换为您要观看的视频的实际视频ID,当您点击它时,它就会启动带有视频的YouTube应用。

如果您想要图像缩略图而不是文本链接来打开视频 简单地