Кнопка возврата к приложению после открытия браузера
У меня есть веб-просмотр, который загружает определенный веб-сайт на нем, пользователь должен выполнить проверку, которая может быть выполнена только браузером, пользователь нажимает на ссылку и открывает браузер Android и делает эту проверку, можно создать кнопку возврата для приложения в верхней части браузера, потому что после проверки пользователь не может вернуться к приложению, на iphone есть контроллер навигации, а когда пользователь нажимает на ссылку, которая открывает браузер, создается кнопка возврата на сверху на мобиле можно на андроиде?
1 ответ
Не напрямую.
Я вижу, что вы можете работать с этим ограничением двумя способами.
- Сделать тост, чтобы сказать пользователю, чтобы вернуться к вашему приложению.
- Используйте сенсорное наложение и добавьте его на экран, когда пользователь выполняет действие, которое направляет их в браузер. Когда этот оверлей коснется, ваше приложение будет "перезапущено".
Вы можете сделать простой кликабельный оверлей, например:
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()
метод.