使用Firemonkey在移动应用程序中禁用TWebBrowser中的缩放选项

时间:2017-06-28 13:12:44

标签: delphi firemonkey twebbrowser delphi-10.1-berlin

我正在使用Delphi 10.1 Berlin开发移动应用程序。我有一个TWebBrowser,我需要禁用它的缩放选项。我该怎么做?

2 个答案:

答案 0 :(得分:0)

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

由显示的内容决定控制缩放。如果您要在组件中显示自己的HTML(即不允许浏览网页),请确保每个页面的<head>中都包含以下内容:

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

看看这个:

How do you disable viewport zooming on Mobile Safari?

答案 1 :(得分:0)

您必须修改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;

重新编译项目,您将获得适合内容的网页浏览器,而不会缩放。

或者,您可以修改:

class function TNativeWebViewHelper.CreateAndInitWebView: UIWebView;

只是评论第二行:

 // Result.setScalesPageToFit(True);

这样,您将获得具有未缩放内容的webbrowser,而不使用缩放选项。 根据您的要求选择更好的解决方案:)

适用于Android: 首先,将FMX.WebBrowser.Android.pas复制到项目的文件夹中。 <,在

结束时
procedure TAndroidWebBrowserService.InitUIThread;

添加以下行:

FJWebBrowser.getSettings.setSupportZoom(false);

请注意,我使用Delphi 10.2 Tokyo检查了此代码。但乍一看FMX源代码在这部分看起来是一样的,所以它也应该在柏林工作。