WebView не возвращает управление приложению - PullRequest
1 голос
/ 15 января 2011

Мне было интересно, знает ли кто-нибудь, как вернуть управление обратно в приложение после запуска веб-просмотра?Я получил пример кода для веб-просмотра со страницы разработчиков Android, но я не смог найти способ вернуть управление приложению после выхода из веб-просмотра.Любая помощь будет оценена.

public class LaunchWeb extends Activity{
 WebView webView; 
  public void onCreate(Bundle savedInstanceType)
  { 
   super.onCreate(savedInstanceType); 
   setContentView(R.layout.webview_layout); 
   webView = (WebView) findViewById(R.id.webview);
   //webView.setWebViewClient(new WebViewClient());    
   webView.getSettings().setJavaScriptEnabled(true);
   webView.loadUrl(getIntent().getExtras().getString("url")); 
  } 
}

Ответы [ 2 ]

2 голосов
/ 15 января 2011

Ваша проблема в том, что вы, скорее всего, не смотрите на WebView.

Запустите ваше приложение.Когда вы попадете на страницу, которую, по вашему мнению, просматриваете в WebView, нажмите кнопку MENU.Вы, вероятно, увидите меню опций приложения Browser.Это потому, что вы находитесь в приложении Browser, а не в вашем приложении.

WebView по умолчанию запускает все клики по ссылкам и все перенаправляет в выбранный пользователем браузер.Вероятно, вы попали в сценарий перенаправления - URL, который вы указали для loadUrl(), инициировал перенаправление на сервере, и перенаправленный URL загружается браузером, а не WebView.

Вам нужно будет прикрепить объект WebViewClient к WebView и внедрить shouldOverrideUrlLoading() в WebViewClient, чтобы указать, какие ссылки / перенаправления должны быть загружены в WebView, а какие - по выбору пользователя.браузера.

1 голос
/ 15 января 2011

Судя по комментариям, создается впечатление, что у вас есть история просмотров.

Если вы создали действие с веб-просмотром, вам следует попытаться очистить historyStack, чтобы при повторном нажатии он вернулся.

Вы даже можете установить это в WebViewClient.На каждой странице загрузки вы очищаете историю.

    WebView webview = new WebView(mContext);
    webview.setWebViewClient(new AuthClient());

    private class AuthClient extends WebViewClient {
            @Override
            public void onPageFinished(WebView v, String url) {
                v.clearHistory();
            }
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...