Dart 安装google api日历时出现抖动省道错误
我将显示谷歌日历中的事件列表。 我遵循了以下链接中已经给出的示例: 我的剧本如下:Dart 安装google api日历时出现抖动省道错误,dart,flutter,Dart,Flutter,我将显示谷歌日历中的事件列表。 我遵循了以下链接中已经给出的示例: 我的剧本如下: import'package:http/http.dart'作为http 假设我已登录 GoogleSignIn _googleSignIn = GoogleSignIn( scopes: <String>[ 'email', 'https://www.googleapis.com/auth/contacts.readonly', 'https://www.googleap
import'package:http/http.dart'作为http代码>
假设我已登录
GoogleSignIn _googleSignIn = GoogleSignIn(
scopes: <String>[
'email',
'https://www.googleapis.com/auth/contacts.readonly',
'https://www.googleapis.com/auth/calendar'
],
);'
GoogleSignIn\u GoogleSignIn=GoogleSignIn(
范围:[
“电子邮件”,
'https://www.googleapis.com/auth/contacts.readonly',
'https://www.googleapis.com/auth/calendar'
],
);'
类GoogleHttpClient扩展了http.BaseClient{
地图标题;
GoogleHttpClient(this._headers):super();
@凌驾
未来发送(http.BaseRequest请求)=>
super.send(request..headers.addAll(_headers));//有错误“方法“send”在超类型中总是抽象的”
@凌驾
未来头(对象url,{Map headers})=>
header(url,headers:headers..addAll(_headers));
}
void getCalendarEvents()异步{
最终authHeaders=\u googleSignIn.currentUser.authHeaders;
final httpClient=new GoogleHttpClient(authHeaders);//出现错误“无法将参数类型'Future'分配给参数类型'Map'”
var calendar=new calendar.CalendarApi(new http.Client());
var calEvents=calendar.events.list(“主”);
calEvents.then((Calendar.Events){
events.items.forEach((Calendar.Event事件){print(Event.summary);});
});
}
由于错误,上述脚本无法运行
方法“send”在超类型中始终是抽象的
有人能帮我吗?如果你的代码基于,你会看到我的代码中有一个@覆盖未来发送(…)
GoogleHttpClient
扩展了缺少send
实现的抽象类IOClient
,因此具体的子类需要实现它
这就是错误消息的内容。如果您的代码是基于的,您将看到我的代码中有一个@override Future send(…)
GoogleHttpClient
扩展了缺少send
实现的抽象类IOClient
,因此具体的子类需要实现它
这就是错误消息的内容。1这是错误
//have error "The argument type 'Future<Map<String, String>>' can't be assigned to the parameter type 'Map<String, String>'"
2:改变如下
var calendar = new Calendar.CalendarApi(new http.Client());
到
=======>最终版本:
void getCalendarEvents() async {
final authHeaders = await _googleSignIn.currentUser.authHeaders;
final httpClient = new GoogleHttpClient(authHeaders);
var calendar = new Calendar.CalendarApi(httpClient);
var calEvents = calendar.events.list("primary");
calEvents.then((Calendar.Events events) {
events.items.forEach((Calendar.Event event) {print(event.summary);});
});
}
这对我有用 1这是一个错误
//have error "The argument type 'Future<Map<String, String>>' can't be assigned to the parameter type 'Map<String, String>'"
2:改变如下
var calendar = new Calendar.CalendarApi(new http.Client());
到
=======>最终版本:
void getCalendarEvents() async {
final authHeaders = await _googleSignIn.currentUser.authHeaders;
final httpClient = new GoogleHttpClient(authHeaders);
var calendar = new Calendar.CalendarApi(httpClient);
var calEvents = calendar.events.list("primary");
calEvents.then((Calendar.Events events) {
events.items.forEach((Calendar.Event event) {print(event.summary);});
});
}
这对我有用 用IOStreamedResponse替换StreamedResponse
添加IOClient库
将类GoogleHttpClient扩展IOClient
替换为类GoogleHttpClient扩展http.BaseClient将StreamedResponse替换为IOStreamedResponse
添加IOClient库
将类GoogleHttpClient扩展IOClient
替换为类GoogleHttpClient扩展http.BaseClient
谢谢您的快速回答。如何实现抽象类IOClient
本身?我只是将其定义如下:import'package:http/http.dart'作为http代码>谢谢,对不起,我不明白这个评论。请检查答案中的代码,谢谢您的快速回答。如何实现抽象类IOClient
本身?我只是将其定义如下:import'package:http/http.dart'作为http代码>谢谢,对不起,我不明白这个评论。请把答案中的代码填在表格中
void getCalendarEvents() async {
final authHeaders = await _googleSignIn.currentUser.authHeaders;
final httpClient = new GoogleHttpClient(authHeaders);
var calendar = new Calendar.CalendarApi(httpClient);
var calEvents = calendar.events.list("primary");
calEvents.then((Calendar.Events events) {
events.items.forEach((Calendar.Event event) {print(event.summary);});
});
}