Flutter维基百科查询插件wikidart的使用
Flutter维基百科查询插件wikidart的使用
Wikidart
一个用Dart编写的简单封装的维基媒体API。允许你查询和检索维基百科页面信息。
使用
一个典型的使用示例:
import 'package:wikidart/wikidart.dart';
Future<void> main() async {
var res = await Wikidart.searchQuery('Google');
var pageid = res?.results?.first.pageId;
if (pageid != null) {
var google = await Wikidart.summary(pageid);
print(google?.title); // 返回 "Google"
print(google?.description); // 返回 "美国科技公司"
print(google?.extract); // 返回 "Google LLC 是一家美国跨国科技公司,专注于互联网相关业务..."
}
}
特性
- ✅ 按标题搜索
- ✅ 通过页面ID获取摘要
- ❌ 随机页面
- ❌ 设置页面语言
贡献
请在 问题跟踪器 中提交功能请求和错误报告。
示例代码
以下是一个完整的示例代码,展示了如何使用 wikidart
插件来查询维基百科页面并获取其摘要信息。
import 'package:wikidart/wikidart.dart';
// 主函数
Future<void> main() async {
// 使用 searchQuery 方法搜索页面
var res = await Wikidart.searchQuery('Google');
// 获取搜索结果的第一个页面ID
var pageid = res?.results?.first.pageId;
// 如果找到页面ID,则继续获取摘要信息
if (pageid != null) {
// 使用 summary 方法获取摘要信息
var google = await Wikidart.summary(pageid);
// 打印获取到的信息
print(google?.title); // 返回 "Google"
print(google?.description); // 返回 "美国科技公司"
print(google?.extract); // 返回 "Google LLC 是一家美国跨国科技公司,专注于互联网相关业务..."
}
}
更多关于Flutter维基百科查询插件wikidart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter维基百科查询插件wikidart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个使用Flutter维基百科查询插件 wikidart
的示例代码。这个示例展示了如何使用 wikidart
包来搜索维基百科条目并获取其摘要信息。
首先,确保在你的 pubspec.yaml
文件中添加 wikidart
依赖:
dependencies:
flutter:
sdk: flutter
wikidart: ^x.y.z # 请将 x.y.z 替换为当前最新版本号
然后,运行 flutter pub get
来获取依赖。
接下来,是一个完整的 Flutter 应用示例,展示了如何使用 wikidart
包:
import 'package:flutter/material.dart';
import 'package:wikidart/wikidart.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Wikidart Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: WikipediaSearchPage(),
);
}
}
class WikipediaSearchPage extends StatefulWidget {
@override
_WikipediaSearchPageState createState() => _WikipediaSearchPageState();
}
class _WikipediaSearchPageState extends State<WikipediaSearchPage> {
final TextEditingController _controller = TextEditingController();
String _searchResult = '';
void _searchWikipedia(String query) async {
final Wikipedia wikipedia = Wikipedia();
try {
final SearchResult searchResult = await wikipedia.search(query);
if (searchResult.items.isNotEmpty) {
final String pageId = searchResult.items.first.pageid;
final Page page = await wikipedia.getPage(pageId);
setState(() {
_searchResult = page.extract;
});
} else {
setState(() {
_searchResult = 'No results found.';
});
}
} catch (e) {
setState(() {
_searchResult = 'Error: ${e.message}';
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Wikipedia Search'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
TextField(
controller: _controller,
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'Search',
suffixIcon: IconButton(
icon: Icon(Icons.search),
onPressed: () async {
final String query = _controller.text;
if (query.isNotEmpty) {
_searchWikipedia(query);
}
},
),
),
),
SizedBox(height: 16.0),
Expanded(
child: SingleChildScrollView(
child: Text(
_searchResult,
style: TextStyle(fontSize: 16.0),
),
),
),
],
),
),
);
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
}
在这个示例中,我们创建了一个简单的 Flutter 应用,它包含一个文本输入框和一个搜索按钮(通过后缀图标实现)。用户在输入框中输入查询词并点击搜索图标后,应用会使用 wikidart
包搜索维基百科,并显示第一个结果的摘要信息。
主要步骤:
- 初始化
wikidart
实例:通过Wikipedia()
创建一个维基百科实例。 - 执行搜索:调用
wikipedia.search(query)
方法进行搜索。 - 获取页面信息:使用搜索结果中的
pageid
调用wikipedia.getPage(pageId)
获取页面的详细信息。 - 更新 UI:使用
setState()
方法更新 UI 以显示搜索结果。
这个示例展示了基本的搜索和结果展示功能,你可以根据需要进一步扩展和优化,比如添加加载指示器、错误处理等。