Delphi Intraweb:有没有办法在没有弹出行为的情况下在新标签页中打开 url?

在 Intraweb(用于 Web 的 VCL)移动 Web 应用程序中,我需要将用户重定向到 Java Web 应用程序。我指定它是一个 Java 网络应用程序,以强调它与内部网络网络应用程序相比完全不同的事实。

我想实现以下行为:

  1. 用户点击按钮
  2. Java 应用程序在浏览器中打开并使用它,特别是他使用移动键盘输入数据
  3. 用户点击手机返回按钮
  4. intraweb 应用程序在浏览器中打开

据我所知,在 Intraweb 中,有两种方法可以重定向用户:

方法 1) 使用 WebApplication.GoToUrl(javaAppUrl) 这样,历史记录就会丢失,因此当用户点击返回时,他将无法返回到 Intraweb 应用程序

方法 2) 使用 WebApplication.NewWindow(javaAppUrl) 以这种方式,所有似乎都特别有效,后退按钮有效,但是当我尝试使用移动键盘在 Java 应用程序中输入内容时,键盘会出现片刻然后立即消失,我想这是因为不知何故 NewWindow “在浏览器上下文中执行时创建一个新的弹出窗口。

NewWindow 也有一些具有不同参数列表的覆盖方法,但没有人允许删除“弹出行为”。

您能否提出一种在移动浏览器中打开新网络应用的方法:

  1. 保留浏览器历史记录
  2. 能够在刚刚打开的应用程序中使用移动键盘 ?

我使用 Delphi 10 Seattle、Intraweb 14.2.7 和 cgdevtools 来处理移动部分(无论如何,cgdevtools 在这个问题上没有任何作用)。

谢谢。

fankaoquan 回答:Delphi Intraweb:有没有办法在没有弹出行为的情况下在新标签页中打开 url?

我通过传入 webapp URL 的 URL 实现了一种解决方法,以便在 java URL 中显示一个按钮来关闭会话并将用户重定向到内部 webapp

javaAppUrl:= javaAppUrl + '&BACK_URL=' + WebApplication.FullApplicationURL(WebApplication.Request);
WebApplication.GoToUrl(javaAppUrl); 

通过这种方式,我获得了 GoToUrl 的好处(因此移动键盘可以使用),并且我设法通过自定义按钮获得了返回功能。

顺便说一下,这仍然是一种解决方法,我需要它,因为我必须发布应用程序,但这还不是完美的解决方案。

本文链接:https://www.f2er.com/512759.html

大家都在问