У меня есть приложение android webview с аутентификацией пользователя, приложение позволяет пользователям регистрировать свои устройства, собирая android id устройства. Когда пользователь запускает мобильное приложение, оно проверяет, зарегистрировано ли мобильное устройство, а затем проверяет данные для входа, связанные с зарегистрированным устройством. Все работает, как задумано, без проблем.
Моя проблема в том, что по истечении сеанса PHP пользователи будут перенаправлены на страницу входа. Если пользователь закроет приложение и снова откроет его, он зарегистрирует пользователя без повторного ввода данных для входа. PHP тайм-аут сеанса не может быть изменен из-за политики компании.
Я хотел бы знать, могу ли я обнаружить изменение URL-адреса страницы входа и отправить устройство android id с URL-адресом страницы входа, аналогичным в процесс запуска приложения. Итак, когда сеанс PHP истечет, пользователи будут автоматически входить в систему без необходимости повторно вводить свои учетные данные.
Вот текущий код, который я использую, некоторые нерелевантные коды были удалены, чтобы уменьшить строки кода. Это мое первое приложение android, и у меня очень ограниченный опыт в области мобильного программирования, и последние пару дней я безуспешно искал. Помощь и направление приветствуются.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
boolean isConnct = false;
// code here to check internet connection
// end of internet connection code
if (isConnct){
// internet is ok
final WebView webView = (WebView)findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
findViewById(R.id.imageLoading1).setVisibility(ImageView.GONE);
findViewById(R.id.webView).setVisibility(webView.VISIBLE);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){
// show error message
}
});
// using setWebChromeClient to enable javascript
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
// js confirm code
}
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
// js alert code
}
});
// enable javascript and other settings
String url = "https://www.domainname/login/" + android.provider.Settings.Secure.getString(getContentResolver(), Secure.ANDROID_ID);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setDisplayZoomControls(false);
webSettings.setSupportZoom(true);
webSettings.setDefaultTextEncodingName("utf-8");
webView.loadUrl(url);
} else {
// show error message
}
}