В моем приложении есть экран входа в систему в первый раз, который отображается в веб-представлении. На этом экране появится всплывающее окно с именем пользователя и паролем. После указания деталей при нажатии кнопки входа в систему будет отправлено имя пользователя и пароль, и он будет вызывать php-код для проверки имени пользователя и пароля, который перенаправляет ссылку, которая будет перезагружена в веб-просмотре. Когда этот URL-адрес загружен, я должен прослушать URL-адрес, и если URL-адрес соответствует некоторому рассмотрению, я хочу закончить деятельность веб-просмотра и перейти к следующему действию.Клиент Webview не прослушивание shouldOverrideUrlLoading
Проблема такая, когда я не могу прослушать URL-адрес, который генерируется после входа в систему. Поскольку у кнопки входа нет входа в систему, shouldOverrideUrlLoading не вызывает. Я попытался использовать onPageFinished, onLoadResource, onPageStarted. Но только несколько устройств называют эти функции.
Я хочу получить URL-адрес после нажатия кнопки «Логин». Есть ли другой способ решить эту проблему.
Это мой код:
public class AndroidTestActivity extends Activity {
/** Called when the activity is first created. */
WebView mWebView;
Context ctx;
String str = "";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ctx = this;
mWebView = (WebView) findViewById(R.id.mywebview);
mWebView.setWebViewClient(new MyWebClient());
mWebView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);
WebSettings webSettings = mWebView.getSettings();
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
webSettings.setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message,
android.webkit.JsResult result) {
// Required functionality here
return super.onJsAlert(view, url, message, result);
}
});
mWebView.loadUrl("http://This is my log in screen");
}
class MyWebClient extends WebViewClient {
MyWebClient() {
Log.e("test", "Inside WebViewClient");
}
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.e("onPageStarted", url);
str = str + "onPageStarted : " + url + "\n";
}
public void onLoadResource(WebView view, String url) {
Log.e("onLoadResource", url);
str = str + "onLoadResource : " + url + "\n";
}
public void onPageFinished(WebView view, String url) {
Log.e("onPageFinished", url);
str = str + "onPageFinished : " + url + "\n";
}
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.e("shouldOverrideUrlLoading", url);
str = str + "shouldOverrideUrlLoading : " + url + "\n";
return true;
}
}
}
спасибо С уважением, Снайпер.
Большое спасибо. Вы спасли мое время. Но после завершения операции диалог показывает «полное действие с помощью Dialog» со списком браузеров в устройстве. Как я могу избежать этого. – Sniper