【发布时间】:2021-03-26 09:28:10
【问题描述】:
当我尝试在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(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)"),
),
],
),
),
),
);
}
}
在pubspec.yaml中包含以下内容
依赖: 扑: sdk:颤动
cupertino_icons: ^1.0.1 格子颤振:^1.1.6 http: ^0.12.0+2
【问题讨论】:
-
这适用于flutter中的普通文本字段,但与PlaidLink登录一起使用时不会弹出!如果我禁用“连接硬件键盘”,iOS 键盘会弹出,但它不允许我使用键盘输入!
-
只需按 Command + Control + K 键。