안녕하세요.

몇일동안 try를 해 보다가 도저히 해결 방안을 찾을 수가 없어서 도움을 청합니다.

홈페이지에 youtube 동영상 하나를 올렸습니다.

그리고 안드로이드 어플을 만들었구요, 물론 webview로 구현해서 그 홈페이지를 불러 왔습니다.

 webview에서 youtube 동영상을 클릭하면, 안드로이드용 default movie play로 연결돼서 실행이 되야 될 것 같은데, 실행이 되지 않네요.

 

  @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  
  WebView mWebView = (WebView) findViewById(R.id.webView);
  
  mWebView.getSettings().setUserAgent(0);
  //(ua=0-android, ua=1-desktop)
  mWebView.getSettings().setJavaScriptEnabled(true);
  mWebView.getSettings().setLoadWithOverviewMode(true);
  mWebView.getSettings().setUseWideViewPort(true);
  mWebView.setInitialScale(1);
     mWebView.setWebViewClient(new HelloWebViewClient());    
     mWebView.getSettings().setPluginsEnabled(true);
     mWebView.getSettings().setAllowFileAccess(true);
     mWebView.getSettings().setBuiltInZoomControls(true);
     mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
     mWebView.getSettings().setSupportMultipleWindows(true);
     mWebView.setClickable(true);
     mWebView.setLongClickable(true);
     mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
     mWebView.getSettings().setSaveFormData(true);
     mWebView.getSettings().setDomStorageEnabled(true);

     try {
     mWebView.loadUrl("http://test.com");
     }catch (Exception e){
      e.printStackTrace();
     }
     Log.i("YourLogTag", "Web view");  
    
 }

 
private class HelloWebViewClient extends WebViewClient { 
     public boolean shouldOverrideUrlLoading(WebView view, String overrideUrl) {  
      Log.i("YourLogTag", "URL-> " + overrideUrl);   
      return true;
          } 
   } 


그래서, 혹시나 싶어서 홈페이지에 있는 모든 링크를 어플에서 선택했을 때 URL이 나와도록 수정해서 test를 해 봤습니다.

 

     public boolean shouldOverrideUrlLoading(WebView view, String overrideUrl) {  
      Log.i("YourLogTag", "URL-> " + overrideUrl);   
      return true;

 

다른 일반 하이퍼 링크는 모두 주소가 나오는데,  유일하게 youtube 는 전혀 링크 주소가 나오지 않네요.???

차이점은 youtube 링크만 pop up 메뉴가 뜬다는 겁니다.

그 말은  private class HelloWebViewClient extends WebViewClient 함수 실행이 되지 않는다는 것인데...

왜 그럴까요?

 

참고로, 홈페이지에 youtube 링크 소스를 올려 봅니다.

a href="http://www.youtube.com/embed/url" class="video-thumb"><img width="250" height="168" src="http://test.com/wp-content/uploads/2222-250x168.jpg" class="attachment-video-thumbnail wp-post-image" alt="2222" title="2222" /><span class="overlay"><span class="icon"></span> <span class="bg"></span></span></a>
</li>
</li>