2012-11-19 4 views
3

안녕하세요. 제 질문은 간단합니다. WebViews를 제한하여 웹 사이트에 대해 하나의 웹뷰를 말하지만 그 페이지와 그 페이지에만 고정되어 있기를 원하십니까?WebView를 한 페이지로만 제한

위의 예는 태그를 따르는 twitter WebView입니다. 나는 사용자가 그 꼬리표를 따라갈 수 있기를 바래서 트위터 물건에 더 깊이 들어갈 수 없도록하고 싶다.

그것은 이미 미리 설정 링크,

Button--> opens web view with set link to twitter. 

그래서 내가 생각처럼 눌러 또는 무언가에 대한 검사의 일종이어야한다.

답변

3

이와 같이해야합니다.

myWebView = (WebView) findViewById(R.id.webview); 
myWebView.setWebViewClient(new WebViewClient() { 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    if(url.contains("somedomain.com")) { 
     view.loadUrl(url); 
    } 
    return true; 
    } 
}); 
+0

URL 입력을받는 경우에만 작동합니다 (죄송합니다.). 나는 twitter 태그 페이지에 이미 설정된 webview를 여는 버튼 만 갖고있다. 그래서 if 수표는 아무 것도하지 않을 것입니다. 누군가가 링크와 같은 것을 누를 경우 어떤 언론이 어떻게 든 차단한다고 생각하는 언론 조사를해야합니다. – EVX

+0

누군가가 링크를 눌러야 할 때 shouldOverrideUrlLoading()은 URL로 이동하려고 시도합니다 ... – FoamyGuy

+0

예 it 작동해야하고 그것을 시도했지만 내가 링크를 누르면 링크 대상으로 계속 이동합니다. – EVX

1

실제로 위의 방법은 좋은 해결책이지만 정교한 방법이 필요하다. 이거 한번 해봐. 이것이 귀하의 질문에 적합한 해결책인지 여부를 모르겠습니다. 이것을 가지고 놀아 라.

webview.setWebViewClient(new MyWebViewClient()); 




private class MyWebViewClient extends WebViewClient { 

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

      return true; 
     } 

     @Override 
     public void onReceivedError(WebView view, int errorCode, 
       String description, String failingUrl) { 
      super.onReceivedError(view, errorCode, description, failingUrl); 
     } 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      super.onPageStarted(view, url, favicon);    
      if(!url.equals("your_domain_name.com/")){ 
       setResult(RESULT_OK); 
       finish(); 
      } 
      } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view, url); 
      if(!url.equals("your_domain_name.com/")){ 
       finish(); 
      } 


     } 
     @Override 
     public void onTooManyRedirects(WebView view, Message cancelMsg, 
       Message continueMsg) { 
      super.onTooManyRedirects(view, cancelMsg, continueMsg); 
      cancelMsg.sendToTarget(); 
     } 

    } 
관련 문제