Системная «назад» спрашивает страницу, а не закрывает приложение
This commit is contained in:
@@ -3,15 +3,39 @@ package ru.ua1zbe.bus127;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
|
import android.webkit.WebView;
|
||||||
|
|
||||||
public class MainActivity extends Activity {
|
public class MainActivity extends Activity {
|
||||||
|
|
||||||
|
private WebView web;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
// экран не гаснет, пока открыто расписание
|
// экран не гаснет, пока открыто расписание
|
||||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||||
requestNotificationsPermission();
|
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+ требует явного согласия на показ уведомлений
|
// Android 13+ требует явного согласия на показ уведомлений
|
||||||
|
|||||||
Reference in New Issue
Block a user