2016-03-28 2 views
0

Я загружаю URL-адрес в webview. то есть сначала я загружаю страницу входа в Webview. Затем после ввода имени пользователя и пароля пользователя и нажмите кнопку входа в систему на странице веб-просмотра, он отобразит конкретный ключ сеанса для входа в веб-просмотр. Теперь я хочу прочитать этот ключ сеанса и скрыть эту информацию от пользователя. У кого-нибудь есть идея, как это сделать?Прочитать содержимое веб-страниц и перенаправить

Спасибо.

+0

Я уверен, что у многих людей есть много разных идей о том, как это сделать. Давайте начнем с того, что вы пробовали. Покажите нам весь ваш код и любые ошибки или проблемы, с которыми вы сталкиваетесь. – Tigger

+0

http://stackoverflow.com/questions/10213487/how-can-i-get-the-json-response-of-a-post-request-in-a-webview Сохранить ключ в общих предпочтениях для дальнейшего использования. – ashish

+0

В основном я просто хочу прочитать ключ сеанса. Теперь он отображается в теле webview. Я не мог понять, как читать эту ценность. Как только мы прочитаем, мы можем перенаправить его на другую веб-страницу. –

ответ

0

Я нашел способ сделать это. Т.е. сначала я читаю токен в тексте тела, и как только найденный токен, сделайте webView невидимым. Ваше предложение не применимо для меня, поскольку иногда я хочу показать страницу входа. то есть, если пользователь не подключен к конкретной учетной записи, мы должны показать веб-представление. Как только они возвращают токен после входа в систему, веб-просмотр должен быть скрыт.

0

Этот же вопрос был отвечен несколько раз. И все ответы относятся к this post. Хотя в этом посте есть предупреждения, я не мог найти другого способа, чтобы достичь того, что ищут. Ниже приведена копия кода этого сообщения.

final Context myApp = this; 

/* An instance of this class will be registered as a JavaScript interface */ 
class MyJavaScriptInterface 
{ 
    @JavascriptInterface 
    @SuppressWarnings("unused") 
    public void processHTML(String html) 
    { 
     // process the html as needed by the app 
    } 
} 

    //Edit 1 start 
final ProgressDialog pd = ProgressDialog.show(OnlinePaymentActivity.this, "", "Please wait, your transaction is being processed...", true); 

//Edit 1 end 

final WebView browser = (WebView)findViewById(R.id.browser); 
/* JavaScript must be enabled if you want it to work, obviously */ 
browser.getSettings().setJavaScriptEnabled(true); 

/* Register a new JavaScript interface called HTMLOUT */ 
browser.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT"); 

/* WebViewClient must be set BEFORE calling loadUrl! */ 
browser.setWebViewClient(new WebViewClient() { 

/////Edit 2 start 
        @Override 
        public void onPageStarted(WebView view, String url, Bitmap favicon) 
        { 


      If(browser.getVisibility() == View.VISIBLE) 
{ 
         browser.setVisibility(View.GONE); 
} 
         pd.show(); 
        } 
///// Edit 2 end 

    @Override 
    public void onPageFinished(WebView view, String url) 
    { 

//Edit 3 start 

If(browser.getVisibility() == View.GONE) 
{ 
         browser.setVisibility(View.VISIBLE); 
} 

    pd.dismiss(); 
// Edit 3 end 

     /* This call inject JavaScript into the page which just finished loading. */ 
     browser.loadUrl("javascript:window.HTMLOUT.processHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');"); 
    } 
}); 

/* load a web page */ 
browser.loadUrl("http://lexandera.com/files/jsexamples/gethtml.html"); 
+0

Привет, я могу прочитать содержимое html. Теперь я хочу прекратить показывать эту веб-страницу конечному пользователю. В основном мне нужно прочитать токен, который отображается в веб-представлении, и я не хочу показывать это конечному пользователю. Итак, как я должен остановить загрузку? Когда дело доходит до onPageFinished(), оно уже показано пользователю. –

+0

Хотя я не знаю, будет ли это решение perferct, но я предлагаю вам попробовать это. Используйте setVisiblity для веб-просмотра, когда веб-страница загружается, вы можете скрыть веб-просмотр, и когда вы загрузили свою следующую страницу, вы снова можете показать веб-просмотр. Между вами вы можете показать progressDialog, чтобы пользователь мог подождать некоторое время. –

Смежные вопросы