问题描述
在 Intraweb(用于 Web 的 VCL)移动 Web 应用程序中,我需要将用户重定向到 Java Web 应用程序。我指定它是一个 Java 网络应用程序,以强调它与内部网络网络应用程序相比完全不同的事实。
我想实现以下行为:
据我所知,在 Intraweb 中,有两种方法可以重定向用户:
方法 1) 使用 WebApplication.GoToUrl(javaAppUrl)
这样,历史记录就会丢失,因此当用户点击返回时,他将无法返回到 Intraweb 应用程序
方法 2) 使用 WebApplication.NewWindow(javaAppUrl)
以这种方式,所有似乎都特别有效,后退按钮有效,但是当我尝试使用移动键盘在 Java 应用程序中输入内容时,键盘会出现片刻然后立即消失,我想这是因为不知何故 NewWindow “在浏览器上下文中执行时创建一个新的弹出窗口。
NewWindow
也有一些具有不同参数列表的覆盖方法,但没有人允许删除“弹出行为”。
您能否提出一种在移动浏览器中打开新网络应用的方法:
- 保留浏览器历史记录
- 能够在刚刚打开的应用程序中使用移动键盘 ?
我使用 Delphi 10 Seattle、Intraweb 14.2.7 和 cgdevtools 来处理移动部分(无论如何,cgdevtools 在这个问题上没有任何作用)。
谢谢。
解决方法
我通过传入 webapp URL 的 URL 实现了一种解决方法,以便在 java URL 中显示一个按钮来关闭会话并将用户重定向到内部 webapp
javaAppUrl:= javaAppUrl + '&BACK_URL=' + WebApplication.FullApplicationURL(WebApplication.Request);
WebApplication.GoToUrl(javaAppUrl);
通过这种方式,我获得了 GoToUrl 的好处(因此移动键盘可以使用),并且我设法通过自定义按钮获得了返回功能。
顺便说一下,这仍然是一种解决方法,我需要它,因为我必须发布应用程序,但这还不是完美的解决方案。