使用网络浏览器时后退按钮不起作用
Posted
技术标签:
【中文标题】使用网络浏览器时后退按钮不起作用【英文标题】:Back button won't work when using the webbrowser 【发布时间】:2014-06-17 05:52:55 【问题描述】:我已经下载了 xe6 的试用版并使用名为 webbrowser 的示例。 我想用返回按钮关闭应用程序..
这是我在示例中插入的内容
procedure TWebBrowserForm.FormKeyUp(Sender: TObject; var Key: Word;
var KeyChar: Char; Shift: TShiftState);
begin
if Key = vkHardwareBack then
begin
SharedActivity.Finish;
end;
这可行并关闭应用程序..但是当我单击浏览器内的链接然后按后退按钮时应用程序不会关闭..
我也试过这个http://www.fmxexpress.com/virtual-keyboard-with-twebbrowser-on-android-in-delphi-xe5-firemonkey/
【问题讨论】:
这是正常行为。您的浏览器接收并保持焦点(Embarcadero 就是这样解决了将文本写入 html 页面上的编辑字段的问题)。我不确定,但请尝试将焦点移至表单上的另一个控件(可能您必须调用TWebBrowser.SetFocus(False)
),然后再次按返回。
另外我想你的问题在 Delphi XE5 上是不可复制的。
我试图专注于另一个控件,但没有运气..后退按钮不起作用..如果您在 xe5 或 xe6 中尝试来自 Embarcadero 的示例并处理hardwareback键..您会看到单击网络浏览器中的几个链接时不会触发该键..
我认为 EMB 应该修复这个错误。
我认为另一个错误是。当您键入 www.google.com 然后搜索例如汽车并尝试单击链接时。你会得到一个白屏
【参考方案1】:
请在此写入 onKeyDown 事件
if Key = vkHardwareBack then
begin
SharedActivity.Finish;
end;
【讨论】:
Embarcadero 在 XE6 更新 1 中修复了这个错误【参考方案2】:在 Android 上,您可以改用 TMS Web 浏览器。该组件有一个 OnHardwareButtonClicked 事件,该事件检测硬件后退按钮的单击。我就是这样处理这个问题的。该组件在点击 URL 内的 URL 时非常友好。
【讨论】:
以上是关于使用网络浏览器时后退按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章
浏览器和应用栏中的后退按钮在 Flutter Web 开发中不起作用