2012-11-10 24 views
5

Zaten aktif bir WebView için JavaScript'i aktif durumdayım ve Tarayıcıda değil, WebView içindeki yeni bağlantıyı açar. BuWebView'in Tarayıcıyı Açmasını Önleme

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; 
    } 
    } 

i değil Tarayıcı & yılında, WebView'da (App) içindeki sitedeki tüm bağlantıyı açmak için kodumu handel nasıl (kullanıcı tarayıcıda aç etmek gösterme) Ana faaliyettir.

+0

olası yinelenen ([tıklandığında URL'lerin varsayılan tarayıcısı açılır] http://stackoverflow.com/questions/2378800 Kodunuzu olduğu/click-urls-opens-default-tarayıcı) – Confuse

cevap

0

yüzden sadece alt sınıfı oluşturmak

webview.setWebViewClient(new HelloWebViewClient()); 

olarak WebviewClicent .. Burada Web görünümündeki sınıf

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; 
    } 
} 

ve bağlama olduğunu kullanabilir ve Bunun için http://developer.android.com/reference/android/webkit/WebViewClient.html

+0

"Yalnızca bir görünüm hiyerarşisini oluşturan orijinal konu görünümlerine dokunabilir." – Stan

12

başvurmak zorunda Bu, webclient'i genişletiyor ve bu sınıfın yöntemini, PageFinished (WebView c, String url) ve
kamu boolean shouldOverrideUrlLoading (nihai WebView görünümü, son dize URL) burada

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