Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在webview_颤振插件上使用收缩缩放_Android_Flutter_Webview - Fatal编程技术网

Android 如何在webview_颤振插件上使用收缩缩放

Android 如何在webview_颤振插件上使用收缩缩放,android,flutter,webview,Android,Flutter,Webview,我正在尝试在webview_颤振插件/插件中使用Pinch Zoom。 这是一个简单的测试应用程序,我指的是本教程作为指南 我在中添加了此手势识别器代码 Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: Column( children: [ Expanded( child: WebView(

我正在尝试在webview_颤振插件/插件中使用Pinch Zoom。 这是一个简单的测试应用程序,我指的是本教程作为指南

我在中添加了此手势识别器代码

  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Column(
        children: [
          Expanded(
            child: WebView(
              key: _key,
              javascriptMode: JavascriptMode.unrestricted,
              initialUrl: _url,
              gestureRecognizers: Set()..add(Factory < VerticalDragGestureRecognizer > (
                () => VerticalDragGestureRecognizer()))..add(Factory < ScaleGestureRecognizer > (
                () => ScaleGestureRecognizer())), ))
        ],
      ));
  }
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(),
正文:专栏(
儿童:[
扩大(
孩子:网络视图(
键:_键,
javascriptMode:javascriptMode.unrestricted,
初始url:\u url,
手势识别器:Set()…添加(工厂(
()=>VerticalDraggesturererecognizer())…添加(工厂(
()=>scalegesturererecognizer()),)
],
));
}
但它不支持任何收缩缩放功能

我正在用两个不同的Android设备进行测试,一个运行Android OS 8.0,另一个运行Android OS 7.0。 我正在使用最新的颤振测试版

感谢您提供帮助或提示,以使此功能正常工作。 谢谢。

您可以这样使用:

return new MaterialApp(
  title: 'Flutter WebView Demo',
  theme: new ThemeData(
    primarySwatch: Colors.blue,
  ),
  routes: {
    '/': (_) => const MyHomePage(title: 'Flutter WebView Demo'),
    '/widget': (_) => new WebviewScaffold(
      url: selectedUrl,
      appBar: new AppBar(
        title: const Text('Widget webview'),
      ),
      withZoom: true,   // zoom
      withLocalStorage: true,
      hidden: true,
      initialChild: Container(
        color: Colors.redAccent,
        child: const Center(
          child: Text('Waiting.....'),
        ),
      ),
    ),
  },
);

默认情况下,在iOS上启用“收缩到缩放”

遵循此拉取请求并修改
webview.java
以在android上启用它:


颤振插件>网络视图\u颤振-2.0.2> /android/src/main/java/io/flatter/plugins/webviewflatter/flatterwebview.java

我只在更改此文件和添加此代码时得到了以下结果:

// Allow zoom.
webView.getSettings().setBuiltInZoomControls(true);
// Hide buttons.
webView.getSettings().setDisplayZoomControls(false);

*和《罗文辉》一样。

你确定iOS变焦吗?我刚在iOS设备上试用过,但“捏缩缩放”不起作用。@kakyo你能提供更多的上下文吗?物理ios设备还是模拟器?哪个插件-webview\u flatter或flatter\u webview\u插件?测试哪些网站页面?等等。我当时使用的是iPhone6s,运行的是iOS 13,带有
webview\u flatter
。这是我应用程序资产文件夹中的一个本地html文件。@kakyo我猜你的本地html不支持pinch to zoomI,刚刚用webview的最新github副本测试了这个例子,试图打开一个网站,但在iOS上仍然没有pinch。使用快速电子测试应用程序,缩放可以很好地处理我的html文件。