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

我有一个WebView应用程序,我想这样做:

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

>打开YouTube Android应用以观看视频
>打开标准浏览器以查看视频.

我的主要活动如下:

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/");   
    }
}

提前致谢.

最佳答案
回答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应用.

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

转载注明原文:自定义Android WebView可在内部打开除YouTube链接之外的所有链接 - 代码日志