Flutter中WebView下面弹出内容布局

在这里插入图片描述

import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';

class TranformWebViewBottom extends StatefulWidget {
  @override
  _TranformWebViewBottomState createState() => _TranformWebViewBottomState();
}

class _TranformWebViewBottomState extends State<TranformWebViewBottom> {
  double _height = 0;
  Color _color = Colors.red;
  @override
  Widget build(BuildContext context) {
    var duration = Duration(seconds: 2);
    return Scaffold(
      appBar: AppBar(
        title: Text('WebView底部弹出动画'),
      ),
      floatingActionButton: FloatingActionButton(
        child: Text('弹出'),
        onPressed: (){
          setState(() {
            _height = 200;
            _color = Colors.blue;
          });
        },
      ),
      body: Column(
        children: <Widget>[
          Expanded(
            child: Container(
                child: InAppWebView(
                  initialUrl: "https://item.m.jd.com/ware/view.action?wareId=100003582705&sid=null",
                  initialHeaders: {},
                  initialOptions: InAppWebViewWidgetOptions(
                      inAppWebViewOptions: InAppWebViewOptions(
                        debuggingEnabled: true,
                      )
                  ),
                  onWebViewCreated: (InAppWebViewController controller) {
  
                  },
                  onLoadStart: (InAppWebViewController controller, String url) {
  
                  },
                  onLoadStop: (InAppWebViewController controller, String url) {
  
                  },
                ),
              ),
          ),
          AnimatedContainer(
              duration: duration,
              height: _height,
              width: MediaQuery.of(context).size.width,
              color: _color,
              child: Text(
                  "AnimatedContainer",
                  style: TextStyle(color: Colors.white),
                ),
            ),
        ],
      )
    );
  }
}
Flutter,`webview_flutter`插件提供了在WebView嵌入网页和原生页面的功能,并允许进行一些交互。如果你想在WebView模拟安卓的`postUrl`请求,可以使用`WebView`组件的`postUrl`方法。以下是一个简单的示例代码,展示了如何使用`postUrl`方法发送POST请求: ```dart import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: MyHomePage(), ); } } class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { String url = 'https://example.com'; // 目标URL String postData = 'user=test&password=test'; // POST数据 @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('WebView Flutter PostUrl Example'), ), body: WebView( initialUrl: url, javascriptMode: JavascriptMode.unrestricted, onWebViewCreated: (WebViewController controller) { controller.postUrl( Uri.parse(url).toString(), Uint8List.fromList(postData.codeUnits), ); }, ), ); } } ``` 这段代码创建了一个简单的Flutter应用,其包含了一个`WebView`。在`onWebViewCreated`回调,我们获取到了`WebView`的控制器,并通过调用`postUrl`方法发送了一个POST请求。`url`是请求的地址,`postData`是POST请求携带的数据,这里使用了`Uint8List`类型来表示要发送的数据,其`codeUnits`属性会将字符串转换为字节列表。 请注意,使用`postUrl`方法时,需要确保目标URL允许从你应用的WebView接收POST请求。此外,由于`webview_flutter`依赖于平台特定的WebView实现,因此某些功能的可用性可能会受到目标设备平台的限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值