如何解决Delphi Intraweb:有没有办法在没有弹出行为的情况下在新标签页中打开 url?
在 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 的好处(因此移动键盘可以使用),并且我设法通过自定义按钮获得了返回功能。
顺便说一下,这仍然是一种解决方法,我需要它,因为我必须发布应用程序,但这还不是完美的解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。