2017-01-20 17 views
8

Tôi đang triển khai ứng dụng bằng chế độ xem web. Đối với các url được tải trong webview, tôi cần phải thực hiện thay thế trên mã html được tải trong url.Cách thay thế trên web được tải trong một Webview

Tôi làm cách nào để thực hiện điều này một cách hiệu quả?

Giải thích: Tôi cần phải thay thế một kịch bản kịch bản cụ thể từ các nguồn:

Trong ví dụ: Tôi muốn

<html> 
    <script> SCRIPT A</script> 
    <p>Hello World</p> 
</html> 

Tôi muốn hiển thị thành viên này khác

<html> 
    <script> SCRIPT B</script> 
    <p>Hello World</p> 
</html> 

Cảm ơn

+0

bạn có thể rõ ràng hơn một chút không? bạn có cần phải thay thế các phần của url hoặc các phần của trang bạn đang tải không? và bạn có cần phải thay thế toàn bộ các khối tại một thời điểm hoặc dựa trên từng từ? Ngoài ra, bạn đang tìm kiếm móc vào hệ thống đại biểu Android, hoặc bạn đang tìm kiếm các đề xuất như những gì thuật toán để sử dụng? – katzenhut

+0

Tôi đã cập nhật câu hỏi của mình, vui lòng kiểm tra nó ra – Addev

+0

nếu tôi không nhầm, bạn muốn thay thế tập lệnh web hiện tại thành tập lệnh của mình? – ZeroOne

Trả lời

1

Bạn phải ghi đè shouldInterceptRequest trong số WebViewClient. Xem tài liệu here.

Dạng tổng quát sẽ là một cái gì đó như thế này (chưa được kiểm tra):

webview.setWebViewClient(new WebViewClient() { 
    @Override 
    public WebResourceResponse shouldInterceptRequest (final WebView view, String url) { 
     if (you_want_to_intercept) { 
      /*return custom WebresourceResponse here*/ 
     } else { 
      /*call superclass*/ 
      return super.shouldInterceptRequest(view, url); 
     } 
    } 
} 

Tôi hy vọng điều này sẽ giúp, cho tôi biết nếu không muốn nói.

0

Bạn có thể sử dụng http yêu cầu để nhận trang HTML dưới dạng Chuỗi, sau đó sử dụng một cái gì đó như jsoup để tìm và thay thế tập lệnh và sử dụng WebView.loadDataWithBaseURL để tải nội dung HTML vào WebView.

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