gpt4 book ai didi

flutter - 无法在Flutter中将参数类型 'String'分配给参数类型 'Uint8List'/postUrl方法

转载 作者:行者123 更新时间:2023-12-03 03:24:09 24 4
gpt4 key购买 nike

我已经尝试过,但似乎无法通过。我正在尝试使用Flutter的postUrl方法将一些变量发布到webView,但是我一直收到此错误,而且我不确定自己在做什么错。我也尝试过找到一个在线使用此方法的人的示例,但找不到任何东西。有人请帮忙。

page.dart:

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

Future main() async {
runApp(new MyPaymentWidget());
}

class MyPaymentWidget extends StatefulWidget {
RouteArgument routeArgument;
MyPaymentWidget({Key key, this.routeArgument}) : super(key: key);
@override
_MyPaymentWidgetState createState() => new _MyPaymentWidgetState();
}

class _MyPaymentWidgetState extends State<MyPaymentWidget> {

InAppWebViewController webView;
String url = "";
Uint8List postData;
double progress = 0;

@override
void initState() {
super.initState();
}

@override
void dispose() {
super.dispose();
}

@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
backgroundColor: Colors.transparent,
elevation: 0,
centerTitle: true,
title: Text(
S.of(context).instant_eft_payment,
style: Theme.of(context).textTheme.title.merge(TextStyle(letterSpacing: 1.3)),
),
),
body: Container(
child: Column(children: <Widget>[
Container(
padding: EdgeInsets.all(10.0),
child: progress < 1.0
? LinearProgressIndicator(value: progress)
: Container()),
Expanded(
child: Container(
margin: const EdgeInsets.all(10.0),
decoration:
BoxDecoration(border: Border.all(color: Colors.blueAccent)),
child: InAppWebView(
initialUrl: "https://example.com/",
initialHeaders: {},
initialOptions: InAppWebViewWidgetOptions(
inAppWebViewOptions: InAppWebViewOptions(
debuggingEnabled: true,
)
),
onWebViewCreated: (InAppWebViewController controller) {
webView = controller;
webView.postUrl(
url: 'https://example.com/',
postData: "Amount=1&TransactionReference=some trans ref&BankReference=bank ref&Customer=thiscustomer&isTest=true");
},
onLoadStart: (InAppWebViewController controller, String url) {
setState(() {
this.url = url;
});
},
onLoadStop: (InAppWebViewController controller, String url) async {
setState(() {
this.url = url;
});
},
onProgressChanged: (InAppWebViewController controller, int progress) {
setState(() {
this.progress = progress / 100;
});
},
),
),
),
ButtonBar(
alignment: MainAxisAlignment.center,
children: <Widget>[
RaisedButton(
child: Icon(Icons.arrow_back),
onPressed: () {
if (webView != null) {
webView.goBack();
}
},
),
RaisedButton(
child: Icon(Icons.arrow_forward),
onPressed: () {
if (webView != null) {
webView.goForward();
}
},
),
RaisedButton(
child: Icon(Icons.refresh),
onPressed: () {
if (webView != null) {
webView.reload();
}
},
),
],
),
])),
),
);
}
}```

最佳答案

postDatapostUrl参数是Uint8List,但您要传递给它String。我假设这应该是字符串的codeUnits(UTF-16表示形式)或UTF-8编码。

尝试将以下参数之一作为postData参数传递:

Uint8List.fromList(myPostData.codeUnits);

要么

// This requires dart:convert
Uint8List.fromList(utf8.encode(myPostData));

关于flutter - 无法在Flutter中将参数类型 'String'分配给参数类型 'Uint8List'/postUrl方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59568750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com