Android Facebook, как с помощью веб-просмотра - PullRequest
5 голосов
/ 11 июля 2011

Я использую следующий код для загрузки кнопки, похожей на Facebook, внутри веб-просмотра.

            likeWebView = (WebView)findViewById(R.id.webview);
            likeWebView.getSettings().setJavaScriptEnabled(true);

            url ="http://www.facebook.com/plugins/like.php?" +
            "href=" + URLEncoder.encode( "http://developers.facebook.com/docs/opengraph/" )
            + "&" +
            "layout=button_count&" +
            "show_faces=0&" +
            "width=90&" +
            "height=24&" +
            "locale=en_IN" +
            "colorscheme=light" ;

            likeWebView.loadUrl( url );

проблема в том, что когда пользователь во время процесса входа перенаправляет его на пустую страницу, как мне перехватить этот запрос веб-просмотра и отменить это действие / закрыть веб-просмотр?

Ответы [ 2 ]

3 голосов
/ 11 июля 2011
public class WebViewPreLoad extends WebView{
public WebViewPreLoad(Context context) {
       super(context);
}
    public void loadUrl(String str){
    if(str.contains("something"))
            super.loadUrl(str);
        else 
                     hide this
    }
}

конечно, вам нужно будет найти правильное "если" для вашего случая

также, проделайте то же самое с

 public void loadUrl(String url, Map<String,String> extraHeaders)

, измените выражение super на:

super.loadUrl(url, extraHeaders);
2 голосов
/ 07 января 2012

В этом случае я бы фактически использовал метод shouldOverrideUrlLoading WebViewClient.

likeWebView = (WebView)findViewById(R.id.webview);
likeWebView.getSettings().setJavaScriptEnabled(true);

likeWebView.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading (WebView view, String url) {
        if(url.contains("something")) return true;
        return false; //Default is to not override unless our condition is met.
    }
});
...