2012-11-10 124 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);