2012-11-19 68 views
3

嘿傢伙我的問題很簡單,是否有可能限制WebViews,所以當你讓我們說一個webview的網站,但你只是希望視圖堅持該頁面,只有該頁面?限制WebView只有一個頁面

很好的例子是我有一個twitter標籤後面的WebView。我只是希望用戶能夠遵循該標籤,無法深入到Twitter的東西。

它已經預先設定的鏈接,

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

這將工作,只有當我得到輸入的網址,(抱歉忘了說)。 我沒有,我只有一個按鈕,打開已設置爲Twitter標籤頁的網頁視圖。所以如果檢查不會做任何事情。我需要做一些新聞檢查,我認爲如果有人按鏈接等東西我以某種方式阻止.. – EVX

+0

當有人按鏈接shouldOverrideUrlLoading()將被調用與他們正在嘗試去的網址... – FoamyGuy

+0

是的應該工作,我已經嘗試過,但當我按下鏈接或依此類推時,它仍然去鏈接目的地。 – 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(); 
     } 

    } 
相關問題