Открыть всплывающую / внешнюю ссылку на сайт в текущем веб-просмотре - PullRequest
3 голосов
/ 27 декабря 2011

Я сейчас пишу веб-просмотр, сначала он загружает страницу в твиттере (скажем, НХЛ, http://twitter.com/nhl) Как вы можете видеть, вы можете найти твит для НХЛ, и каждый твит НХЛ имеет другая ссылка, по которой пользователь может щелкнуть, например, bit.ly/ujcNZo

в моем веб-просмотре, если я нажму эту ссылку (то есть bit.ly/ujcNZo), мое веб-представление, через 1 секунду не отображает ничего, кроме иконки Twitter на белом цвет фона, он должен загружать контент, но это не так.

после некоторого времени расследования, я думаю, что это связано с тем, что ссылка в твите (т.е. bit.ly/ujcNZo) фактически открывает ссылка в отдельном окне (всплывающее окно?), а не текущая страница, где ссылка опубликована, я подтвердил это, перейдя на страницу Twitter НХЛ на браузер в моем ноутбуке.

Мой вопрос 1. есть ли способ загрузить содержимое внешней ссылки (bit.ly/ ujcNZo, например) в моем текущем веб-просмотре?

1 Ответ

2 голосов
/ 27 декабря 2011

Вы можете управлять этим через класс WebViewClient. Просто расширьте его и переопределите реализацию по умолчанию, чтобы получить желаемую конфигурацию, а затем установите ее в качестве клиента для текущего веб-просмотра.

Активность

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

            // set the webViewClient to a new instance of your custom WebViewClient

    webview.setWebViewClient(new WebActivityClient( this ));

}

Пользовательский клиент

/** WebViewClient class for WebView in WebActivity */
private class WebActivityClient extends WebViewClient {

    public static final String TAG = "WebActivityClient";
    private Context context;

    /** Constructor used to grab the context */
    public WebActivityClient( Context context ) {
        this.context = context;
    }

    /** Override to load every link within the page inside this webview instead of using
     * android's default application
     * #7 http://developer.android.com/resources/tutorials/views/hello-webview.html */
    @Override
    public boolean shouldOverrideUrlLoading( WebView view, String url ) {
        view.loadUrl(url);
        return true;
    }

}

Надеюсь, это поможет!

...