2012-11-10 40 views
5

Tôi đã hoạt động JavaScript cho một WebView cụ thể và mở liên kết mới bên trong WebView, chứ không phải trong Trình duyệt. This Is Hoạt động chínhNgăn WebView mở Trình duyệt

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

làm thế nào tôi có thể Handel mã của tôi để mở tất cả các liên kết trong trang web bên trong WebView (App), không phải trong trình duyệt & (không hiển thị cho người sử dụng mở trong trình duyệt).

+0

thể trùng lặp của [Nhấp URL mở trình duyệt mặc định] (http://stackoverflow.com/questions/2378800/click-url-opens-default-browser) – Confuse

Trả lời

0

vì vậy bạn phải sử dụng WebviewClicent .. đây là lớp

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

và ràng buộc trong một webview như

webview.setWebViewClient(new HelloWebViewClient()); 

và tham khảo http://developer.android.com/reference/android/webkit/WebViewClient.html

+0

Chào mừng bạn đến với "Chỉ chuỗi ban đầu đã tạo phân cấp chế độ xem mới có thể chạm vào chế độ xem của nó." ngoại lệ) – Stan

12

Cho rằng chỉ cần tạo các lớp con đó là mở rộng webclient và sử dụng phương thức của lớp đó onPageFinished (WebView c, String url) và
public boolean shouldOverrideUrlLoading (xem WebView thức, thức String url)

đây là số-

myWebView.setWebViewClient(new WebViewClient()  
     { 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) 
      { 
       //view.loadUrl(url); 
       System.out.println("hello"); 
       return true; 
      } 
     }); 
     myWebView.loadUrl(url); 
Các vấn đề liên quan