2013-04-10 2 views
0

두 개의 탭이있는이 애플리케이션이 있습니다. 레이아웃에 액세스하면 탭의 내용으로 웹보기에로드 된 웹 페이지에서 첫 번째 탭이 성공적으로 열립니다. 하지만 두 번째 탭에 액세스하려고하면 내용으로 웹보기가 표시되지 않습니다. 따라서 웹 페이지를 여는 브라우저로 연결됩니다. 나는 주요 활동에서 나의 의도에 의해 접근되는 두 클래스 모두에 대해 동일한 코드를 가지고있다.첫 번째 탭은 webview에서 url을 성공적으로 엽니 다. 그러나 두 번째 탭은 브라우저에서 url을 엽니 다.

TabbedActivity.java

을 여기

import android.app.TabActivity; 
import android.content.Intent; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.TabHost; 

public class TabbedActivity extends TabActivity{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    TabHost host=getTabHost(); 

    host.addTab(host.newTabSpec("g") 
    .setIndicator("Google") 
    .setContent(new Intent(this, WebActivity2.class))); 
    host.addTab(host.newTabSpec("y") 
    .setIndicator("Yahoo") 
    .setContent(new Intent(this, WebActivity3.class))); 
    } 
} 

내가 의도로 사용되는 두 개의 클래스입니다 : 여기에 내가있어 무엇

WebActivity2.java

import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 

    @SuppressLint("SetJavaScriptEnabled") 
    public class WebActivity2 extends Activity { 
     WebView browser; 

     @Override 
     public void onCreate(Bundle icicle) { 
      super.onCreate(icicle); 

      WebView browser = new WebView(this); 
      setContentView(browser); 
      browser.loadUrl("http://www.google.com"); 
     } 
    } 

WebActivity3.java

import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 

    @SuppressLint("SetJavaScriptEnabled")    
    public class WebActivity3 extends Activity {  
     WebView browser; 

     @Override 
     public void onCreate(Bundle icicle) { 
      super.onCreate(icicle); 

      WebView browser = new WebView(this); 
      setContentView(browser); 
      browser.loadUrl("https://m.facebook.com/ama.manilacampus"); 
     } 
    } 

첫 번째 탭에서 제대로 작동하기 때문에 오류가 내 xml 레이아웃에 있다고 생각하지 않습니다. 이 원인이 무엇일까요?

답변

1

페이스 북 링크를로드하는 동안 웹보기가 리디렉션됩니다. 리디렉션 때문에 기본적으로 웹보기는 브라우저 활동을 시작합니다. 다음 코드를 사용하여 동작을 변경할 수 있습니다.

browser.setWebViewClient(new WebViewClient() { 
    //to avoid browser prompting for actions when clicking on URLs 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
}); 
0

페이지가 리디렉션 될 가능성이 높습니다. WebView이 브라우저 앱을 열지 못하도록 관련 질문을 참조하십시오. WebViewClient을 구현하고 trueshouldOverrideUrlLoading에 반환해야합니다.

관련 문제