2010-09-17 29 views
5

Tôi đang thực hiện xác thực với trang web của bên thứ ba có nghĩa vụ chuyển hướng lại ứng dụng của tôi bằng mã thông báo xác thực (OAUTH).Android: Gọi lại với thành phần WebView?

Tôi có gọi lại hoạt động bình thường nếu tôi mở trang web của bên thứ 3 trong một quá trình trình duyệt riêng qua

this.startActivity(new Intent(Intent.ACTION_VIEW, uri)); 

nhưng, nếu tôi nhúng một phần WebView trong cách bố trí của tôi, và mở url trong đó, gọi lại không hoạt động. Webview nói "Bạn không có quyền mở myapp: // callback? Token = ...." và nhanh chóng làm mới "Trang web không khả dụng ... tạm thời ... blah blah"

Bất kỳ ý tưởng nào?

Trả lời

16

Bạn cần triển khai WebViewClient để chặn URI tùy chỉnh trước khi được tải. The Hello, WebView tutorial hiển thị một ví dụ đơn giản. Nơi họ có:

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

Bạn có thể thay đổi "view.loadUrl (url)" để kiểm tra xem URL có phải là URL tùy chỉnh của bạn và xử lý nó theo bất kỳ cách nào bạn muốn.

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