在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]

Posted

技术标签:

【中文标题】在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]【英文标题】:enable pinch and zoom in webview_flutter, where to add code snippet [this.webView.getSettings().setBuiltInZoomControls(true);] 【发布时间】:2020-04-24 09:49:12 【问题描述】:

想要缩放到 webview_flutter

(我知道flutter_webview_plugin 可以做到这一点,但出于其他原因我想坚持使用flutter_webview。)

Zoom support #34

Flutter: how to enable gestures in a web view?

Flutter webview plugin - enable pinch zoom

他们都提到了

this.webView.getSettings().setBuiltInZoomControls(true);

this.webView.getSettings().setSupportZoom(true);允许捏合/缩放。

原谅我的愚蠢,我找不到在哪里添加这个代码sn-p,请帮助。

【问题讨论】:

只需调用替换this.webView 为您的变量名? 【参考方案1】:

下载此存储库:https://github.com/FisherWL/plugins/tree/add-zoom(感谢FisherWL)

将位于包内的文件夹 webview_flutter 复制到您的项目根文件夹,

然后在 pubspec.yaml 上像这样引用文件夹:

  webview_flutter:
    path: ./webview_flutter

【讨论】:

【参考方案2】:

您是否尝试使用缩放属性?这个问题是两年前问的,用 zoom 属性解决了。

本机库代码中的 this.webView.getSettings 也是如此。如果要使用,首先会用java原生代码编写Webview管理器,然后称你为管理器。

多看源码库(这个管理器类有setSupportZoom & setBuiltInZoomControls,只能用zoom属性设置为true)WebviewManager Source

【讨论】:

【参考方案3】:

在 webview_flutter 包中有一种放大或缩小的方法,但我认为它不是很有效。尽管如此,它仍然有效✌?。

import 'package:webview_flutter/webview_flutter.dart';
import 'package:zoom_widget/zoom_widget.dart';

Size size = MediaQuery.of(context).size;
Zoom(
maxZoomWidth: size.width * 3,
maxZoomHeight: size.height * 3,
child: WebView(
   initialUrl: myUrl),
),

根据您的需要,您可以修改最大ZoonWidth和高度

【讨论】:

以上是关于在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]的主要内容,如果未能解决你的问题,请参考以下文章

Swift:如何为 CALayer 启用捏合缩放功能?

在 UIWebView 上启用缩放/捏合

以编程方式启用/禁用捏合以放大 WKWebView 和 viewForZoomingInScrollView

在 div 内捏合/缩放,但不是整个页面 [关闭]

webview_flutter 在 iOS 中存档时导致问题

如何使用 reanimated 2 [REACT-NATIVE] 创建捏合以缩放相机应用程序