我有一个Webview可以在其上加载特定网站,用户必须执行只能由浏览器完成的验证,用户单击链接并打开android浏览器并执行此验证,可以创建浏览器顶部的应用程序后退按钮,因为验证后用户无法返回到该应用程序,在iphone上有导航控制器,并且当用户单击打开浏览器的链接时会创建一个Android上可以在手机顶部返回按钮吗?
答案 0 :(得分:0)
不直接。
我看到有两种方法可以解决此限制。
您可以像这样制作一个简单的可点击叠加层:
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:How to handle SYSTEM_ALERT_WINDOW permission not being auto-granted on some pre-Marshmallow devices
要处理重新启动应用程序的问题,请将launchMode="singleInstance"
添加到AndroidManifest中的“活动”标签中,然后在startActivity()
方法内部对其使用onClick()
。