2012-11-10 191 views
5

我對於給定的WebView已經是活動的JavaScript,並且在WebView內部而不是在瀏覽器中打開新鏈接。 這是主要活動防止WebView打開瀏覽器

package com.Afrogfx.pronouns; 

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

    @SuppressLint("SetJavaScriptEnabled") 
    public class MainActivityPronouns extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_activity_pronouns); 

    WebView wvHtml = (WebView) findViewById(R.id.webview); 
    wvHtml.getSettings().setBuiltInZoomControls(true); 
    wvHtml.getSettings().setJavaScriptEnabled(true); 
    wvHtml.loadUrl("http://afrogfx.com/appcatcategories.php?catid=13&parentid=11"); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main_activity_pronouns, menu); 
    return true; 
    } 
    } 

我怎麼能韓德爾我的代碼來打開網站的所有鏈接的WebView(APP)內,而不是在瀏覽器&(不顯示用戶在打開瀏覽器)。

+0

的可能重複[點擊網址,打開默認的瀏覽器(http://stackoverflow.com/questions/2378800 /點擊 - 網址 - 打開 - 默認 - 瀏覽器) – Confuse

回答

0

,所以你必須使用WebviewClicent這裏..是類

private class HelloWebViewClient extends WebViewClient 
{ 
    @Override 
    public boolean shouldOverrideUrlLoading(final WebView view, final String url) 
    { 
     Utils.showActivityViewer(WebsiteActivity.this); 
     new Thread(new Runnable() 
     { 

      public void run() 
      { 
       view.loadUrl(url); 
      } 



      }).start(); 



     return true; 
    } 
} 

,並綁定在網頁視圖作爲

webview.setWebViewClient(new HelloWebViewClient()); 

,並參考http://developer.android.com/reference/android/webkit/WebViewClient.html

+0

歡迎來到「只有創建視圖層次結構的原始線程才能觸及其視圖」異常) – Stan

12

對於剛剛創建的子類即擴展webclient並使用該類的方法onPageFinished(WebView c,String url)和
公共布爾shouldOverrideUrlLoading(最終的WebView視圖,最終字符串URL)

這裏是代碼 -

myWebView.setWebViewClient(new WebViewClient()  
     { 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) 
      { 
       //view.loadUrl(url); 
       System.out.println("hello"); 
       return true; 
      } 
     }); 
     myWebView.loadUrl(url);