Кнопка возврата к приложению после открытия браузера

У меня есть веб-просмотр, который загружает определенный веб-сайт на нем, пользователь должен выполнить проверку, которая может быть выполнена только браузером, пользователь нажимает на ссылку и открывает браузер Android и делает эту проверку, можно создать кнопку возврата для приложения в верхней части браузера, потому что после проверки пользователь не может вернуться к приложению, на iphone есть контроллер навигации, а когда пользователь нажимает на ссылку, которая открывает браузер, создается кнопка возврата на сверху на мобиле можно на андроиде?

1 ответ

Не напрямую.

Я вижу, что вы можете работать с этим ограничением двумя способами.

  1. Сделать тост, чтобы сказать пользователю, чтобы вернуться к вашему приложению.
  2. Используйте сенсорное наложение и добавьте его на экран, когда пользователь выполняет действие, которое направляет их в браузер. Когда этот оверлей коснется, ваше приложение будет "перезапущено".

Вы можете сделать простой кликабельный оверлей, например:

ImageView button = new ImageView(context); //this can be any View you want, even your own custom subclass
button.setImageResource(R.drawable.back); 
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //handle relaunching your app here
    }
})

WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.height = 50; //height and width are in pixels
params.width = 50;
params.type = Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1 ? 
                WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY : 
                WindowManager.LayoutParams.TYPE_PHONE;
params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
params.gravity = Gravity.TOP | Gravity.START;

WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
manager.addView(button, params); //add the button to the screen

manager.removeView(button); //remove the button from the screen

Для этого вам понадобится SYSTEM_ALERT_WINDOW_PERMISSION: как обрабатывать разрешение SYSTEM_ALERT_WINDOW, которое не предоставляется автоматически на некоторых устройствах перед зефиром

Чтобы выполнить перезапуск приложения, добавьте launchMode="singleInstance" на ваш тег активности в AndroidManifest, а затем просто используйте startActivity() на нем изнутри onClick() метод.

Другие вопросы по тегам