android eclipse和外部URL

时间:2013-07-26 13:57:33

标签: android eclipse webview fragment

我正在尝试在我的应用上建立YouTube链接,以便在外部窗口/标签中打开。任何人都可以帮助我吗?

这是我的代码:

import com.actionbarsherlock.app.SherlockFragment;

public class Showing_now extends SherlockFragment{

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View mainView = (View) inflater.inflate(R.layout.activity_showing_now, container, false);
    WebView webView = (WebView) mainView.findViewById(R.id.webViewsn);

    webView.setWebViewClient(new MyWebViewClient());
    webView.getSettings().setPluginsEnabled(true);
    webView.getSettings().setBuiltInZoomControls(false); 
    webView.getSettings().setSupportZoom(false);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);   
    webView.getSettings().setAllowFileAccess(true); 
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setPluginState(PluginState.ON);
    webView.loadUrl("http://www.myweburl.com");
    return mainView;
}
    private class MyWebViewClient extends WebViewClient {

    }
}

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望在YouTube应用中打开YouTube链接...如果您希望在应用中打开所有YouTube链接,请使用此链接:

public class MyWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        if (url.startsWith("http://m.youtube.com")||url.startsWith("http://www.youtube.com") {
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
            return true;
        } 
        return false;
    }  

@ Ty221的回答也会有效,但此回答会自动尝试打开YouTube应用中的所有YouTube链接。

答案 1 :(得分:0)

如果您想在外部应用程序中观看该视频,请使用该功能:

public static void watchYoutubeVideo(String id){
    try{
         Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube:" + id));
         startActivity(intent);                 
         }catch (ActivityNotFoundException ex){
             Intent intent=new Intent(Intent.ACTION_VIEW, 
             Uri.parse("http://www.youtube.com/watch?v="+id));
             startActivity(intent);
         }
}

如果安装了YouTube应用程序,则会在其中显示视频,否则将打开浏览器。