使用FiremonKey在移动应用中禁用Zoom选项



我正在使用delphi 10.1柏林开发移动应用程序。我有一个TWebBrowser,需要禁用其缩放选项。我该怎么做?

尽管TWebBrowser组件的触摸管理器在其InteractiveMestures集中包含缩放选项,但它似乎无法控制是否允许缩放。(我使用Android应用程序对其进行了测试 - 缩放选项不影响缩放显示页面的能力(

这取决于正在显示的内容以控制缩放。如果要在组件中显示自己的HTML(即不允许浏览网络(,请确保每个页面在其<head>中具有以下内容:

<head>
   <meta name="viewport" id="viewport" content="width=device-width, user-scalable=no, minimum-scale=1, maximum-scale=1" />
</head>

请看一下:

如何禁用移动野生动物园的视口缩放?

您必须修改FMX源。

对于Apple iOS:首先,将fmx.webbrowser.delegate.ios.pas复制到项目的文件夹。比,在

的末尾
procedure TWebViewDelegate.webViewDidFinishLoad(webView: UIWebView);

添加以下行:

if webView <> nil then
  begin
    webView.scrollView.setMinimumZoomScale(1.0);
    webView.scrollView.setMaximumZoomScale(1.0);
    webView.scrollView.setZoomScale(1.0);
  end;

重新编译项目,您将获得适合内容的Webbrowser,而无需缩放可能性。

另外,您可以修改:

class function TNativeWebViewHelper.CreateAndInitWebView: UIWebView;

仅评论第二行:

 // Result.setScalesPageToFit(True);

这样,您将获得带有未添加内容的WebBrowser,而无需缩放选项。为您的需求选择更好的解决方案:(

for Android:首先,将fmx.webbrowser.android.pas复制到项目的文件夹。比,在

的末尾
procedure TAndroidWebBrowserService.InitUIThread;

添加以下行:

FJWebBrowser.getSettings.setSupportZoom(false);

请注意,我用Delphi 10.2 Tokyo检查了此代码。但乍一看,FMX源代码在此部分看起来相同,因此它也应该在柏林工作。

最新更新