Системная «назад» спрашивает страницу, а не закрывает приложение
This commit is contained in:
@@ -3,15 +3,39 @@ package ru.ua1zbe.bus127;
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
import android.view.WindowManager;
|
||||
import android.webkit.WebView;
|
||||
|
||||
public class MainActivity extends Activity {
|
||||
|
||||
private WebView web;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
// экран не гаснет, пока открыто расписание
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
requestNotificationsPermission();
|
||||
setContentView(Webs.create(this, Webs.URL_MAIN));
|
||||
web = Webs.create(this, Webs.URL_MAIN);
|
||||
setContentView(web);
|
||||
}
|
||||
|
||||
/**
|
||||
* WebView системную кнопку «назад» не перехватывает — без этого нажатие
|
||||
* сразу закрывало бы приложение, даже когда открыта справка. Спрашиваем
|
||||
* у страницы, закрыла ли она что-нибудь сама, и выходим только если нет.
|
||||
*/
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
if (web == null) {
|
||||
super.onBackPressed();
|
||||
return;
|
||||
}
|
||||
web.evaluateJavascript(
|
||||
"(function(){return (window.__busBack && window.__busBack()) ? 1 : 0})()",
|
||||
value -> {
|
||||
String v = String.valueOf(value).replace("\"", "").trim();
|
||||
if (!"1".equals(v)) finish();
|
||||
});
|
||||
}
|
||||
|
||||
// Android 13+ требует явного согласия на показ уведомлений
|
||||
|
||||
Reference in New Issue
Block a user