Flutter 使用iOS模拟器测试格子花纹颤振时键盘未弹出
当我尝试在iOS模拟器的Plaid界面中输入用户登录详细信息时,键盘没有显示 谁能给我一个解决这个问题的办法吗 以下是我使用的确切代码:Flutter 使用iOS模拟器测试格子花纹颤振时键盘未弹出,flutter,dart,plaid,Flutter,Dart,Plaid,当我尝试在iOS模拟器的Plaid界面中输入用户登录详细信息时,键盘没有显示 谁能给我一个解决这个问题的办法吗 以下是我使用的确切代码: import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'package:plaid_flutter/plaid_flutter.dart'; void main() => runApp
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:plaid_flutter/plaid_flutter.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
PlaidLink _plaidLinkToken;
var newpublicToken;
var CLIENT_ID = "NTER YOUR PLAID CLIENT ID";
var SECRET = "ENTER YOUR PLAID SECRET";
var unique_per_user = "user_good";
@override
void initState() {
super.initState();
getLinkToken();
}
getLinkToken() async {
var headers = {
'Content-Type': 'application/json',
};
var data =
'{ "client_id": "$CLIENT_ID", "secret": "$SECRET", "user": { "client_user_id": "$unique_per_user" }, "client_name": "Plaid App", "products": ["auth"], "country_codes": ["US"], "language": "en", "webhook": "https://sample-web-hook.com", "account_filters": { "depository": { "account_subtypes": ["checking"] } } }';
var res = await http.post('https://sandbox.plaid.com/link/token/create',
headers: headers, body: data);
if (res.statusCode != 200)
throw Exception('http.post error: statusCode= ${res.statusCode}');
print(res.body);
Map<String, dynamic> responseJson = json.decode(res.body);
var response_link_token = responseJson['link_token'];
print(response_link_token);
LinkConfiguration linkTokenConfiguration = LinkConfiguration(
linkToken: "$response_link_token",
);
_plaidLinkToken = PlaidLink(
configuration: linkTokenConfiguration,
onSuccess: _onSuccessCallback,
onEvent: _onEventCallback,
onExit: _onExitCallback,
);
}
void _onSuccessCallback(String publicToken, LinkSuccessMetadata metadata) {
print("onSuccess: $publicToken, metadata: ${metadata.description()}");
newpublicToken = publicToken;
}
void _onEventCallback(String event, LinkEventMetadata metadata) {
print("onEvent: $event, metadata: ${metadata.description()}");
}
void _onExitCallback(String error, LinkExitMetadata metadata) {
print("onExit: $error, metadata: ${metadata.description()}");
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Container(
width: double.infinity,
color: Colors.lightBlue,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
RaisedButton(
onPressed: () => _plaidLinkToken.open(),
child: Text("Open Plaid Link (Link Token)"),
),
],
),
),
),
);
}
}
导入'dart:convert';
进口“包装:颤振/材料.省道”;
将“package:http/http.dart”导入为http;
进口“包装:格子花飘飘/格子花飘飘.飞镖”;
void main()=>runApp(MyApp());
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
PlaidLink(plaidLinkToken);
var newpublicToken;
var CLIENT_ID=“输入您的格子客户ID”;
var SECRET=“输入您的格子图案密码”;
var unique_per_user=“user_good”;
@凌驾
void initState(){
super.initState();
getLinkToken();
}
getLinkToken()异步{
变量头={
“内容类型”:“应用程序/json”,
};
var数据=
“{”client_id:“$client_id”,“secret:“$secret”,“user:”{”client_user_id:“$unique_per_user”},“client_name:“Plaid App”,“products:”[“auth”],“country_code:“[“US”],“language:“en”,“webhook”:”https://sample-web-hook.com“,“account_filters”:{“depository”:{“account_子类型”:[“checking”]}};
var res=wait http.post('https://sandbox.plaid.com/link/token/create',
标题:标题,正文:数据);
如果(res.statusCode!=200)
抛出异常('http.post错误:statusCode=${res.statusCode}');
印刷品(正文);
Map responseJson=json.decode(res.body);
var response_link_token=responseJson['link_token'];
打印(响应链接令牌);
LinkConfiguration linkTokenConfiguration=LinkConfiguration(
linkToken:“$response\u link\u token”,
);
_plaidLinkToken=PlaidLink(
配置:linkTokenConfiguration,
onSuccess:\u onSuccessCallback,
OneEvent:\u onEventCallback,
onExit:_onExit回调,
);
}
void _onSuccessCallback(字符串publicToken,LinkSuccessMetadata元数据){
打印(“onSuccess:$publicToken,元数据:${metadata.description()}”);
newpublicToken=publicToken;
}
void\u onEventCallback(字符串事件,LinkEventMetadata元数据){
打印(“onEvent:$event,metadata:${metadata.description()}”);
}
void _onExitCallback(字符串错误,LinkExitMetadata){
打印(“onExit:$error,metadata:${metadata.description()}”);
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
主体:容器(
宽度:double.infinity,
颜色:颜色。浅蓝色,
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
升起的按钮(
onPressed:()=>\u plaidLinkToken.open(),
子项:文本(“打开格子线链接(链接令牌)”,
),
],
),
),
),
);
}
}
在pubspec.yaml
依赖项:
颤振:
sdk:颤振
cupertino_图标:^1.0.1
格子布颤振:^1.1.6
http:^0.12.0+2只需按
Command+Control+K
键。只需按Command+Control+K
键。这适用于Flatter中的普通文本字段,但与PlaidLink登录一起使用时不会弹出!如果我禁用“连接硬件键盘”,iOS键盘会弹出,但它不允许我使用键盘打字!只需按Command+Control+K键。这适用于颤振中的普通文本字段,但在使用PlaidLink登录时不会弹出!如果我禁用“连接硬件键盘”,iOS键盘会弹出,但它不允许我使用键盘打字!只需按Command+Control+K键。