2012-11-24 37 views
18

Tôi có một chế độ xem web trong ứng dụng Android của mình, nhưng khi ai đó điều hướng xung quanh trang web, nó sẽ mở trong một cửa sổ mới, tôi muốn nó ở bên trong webview .. có cách nào để làm điều này dễ dàng ? Đây là mã trong hoạt động của tôi:android webview ở trong ứng dụng

super.onCreate(savedInstanceState); 
    setContentView(R.layout.shop); 
    WebView webview; 
    webview = (WebView) findViewById(R.id.webview); 
    webview.getSettings().setJavaScriptEnabled(true); 
    webview.loadUrl("http://www.google.co.uk"); 
+0

bản sao có thể có của [Liên kết phải mở trong cùng một chế độ xem web trong Android] (http://stackoverflow.com/questions/7308904/link-should-be-open-in-same-web-view-in-android) – thkala

Trả lời

39

Bạn sẽ phải tạo một WebViewClient:

public class myWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
} 

Và sau đó đặt nó vào WebView của bạn như thế này:

webview.setWebViewClient(new myWebViewClient()); 
+0

hoàn hảo !! Cảm ơn bạn! –

+0

Bạn được chào đón :) – Ahmad

+0

'shouldOverrideUrlLoading' không được chấp nhận trên Android N. Kiểm tra http://stackoverflow.com/questions/36484074/is-shouldoverrideurlloading-really-deprecated-what-can-i-use-instead – GabrielOshiro

24

Hoặc bạn chỉ có thể làm điều đó mà không cần tạo lớp học mới:

myWebView.setWebViewClient(new WebViewClient()); 

Nó phù hợp với tôi.

Các vấn đề liên quan