Flutter圣经引用插件biblereference的使用
Flutter圣经引用插件biblereference的使用
介绍
biblereference
是一个 Dart 库,用于解析多种语言环境下的文本为圣经引用。
安装
在 pubspec.yaml
文件中添加依赖:
dependencies:
biblereference: ^1.0.0
然后在 Dart 代码中导入库:
import 'package:biblereference/biblereference.dart';
功能
支持的字符串格式
- 书名(例如:《创世记》)
- 书名 章节(例如:《创世记 1》)
- 书名 章节-章节(例如:《创世记 1-2》)
- 书名 章节:经文(例如:《创世记 1:1》)
- 书名 章节:经文-经文(例如:《创世记 1:1-5》)
- 书名 章节:经文,经文(例如:《创世记 1:1,5》)
- 书名 章节:经文-经文,经文-经文(例如:《创世记 1:1-5,8-10》)
- 书名 章节:经文-经文;章节:经文-经文(例如:《创世记 1:1-5;2:1-3》)
- 书名 章节:经文-章节:经文(例如:《创世记 1:5-2:3》)
- 单章节书籍的经文(例如:《约翰二书 9》)
支持的语言环境
- 英语:
AppLocale.en
- 菲律宾语:
AppLocale.tgl
使用方法
你可以使用 BibleReferenceParser()
单例来解析文本。以下是一些示例:
import 'package:biblebooks/biblebooks.dart';
import 'package:biblereference/biblereference.dart';
void main() {
// 使用默认语言环境:AppLocale.en
// 书名
var reference = BibleReferenceParser().parse('Genesis');
print(reference == Reference(BibleBook.genesis)); // 打印 true
// 书名 章节
reference = BibleReferenceParser().parse('Genesis 1');
print(reference ==
Reference(
BibleBook.genesis,
segments: [ReferenceSegment.singleChapter(1)],
)); // 打印 true
// 书名 章节-章节
reference = BibleReferenceParser().parse('Genesis 1-2');
print(reference ==
Reference(
BibleBook.genesis,
segments: [ReferenceSegment.multipleChapters(1, 2)],
)); // 打印 true
// 书名 章节:经文
reference = BibleReferenceParser().parse('Genesis 1:1');
print(reference ==
Reference(
BibleBook.genesis,
segments: [ReferenceSegment.singleVerse(1, 1)],
)); // 打印 true
// 书名 章节:经文-经文
reference = BibleReferenceParser().parse('Genesis 1:1-5');
print(reference ==
Reference(
BibleBook.genesis,
segments: [ReferenceSegment.multipleVerses(1, 1, 5)],
)); // 打印 true
// 书名 章节:经文,经文
reference = BibleReferenceParser().parse('Genesis 1:1,5');
print(reference ==
Reference(
BibleBook.genesis,
segments: [
ReferenceSegment.singleVerse(1, 1),
ReferenceSegment.singleVerse(1, 5),
],
)); // 打印 true
// 书名 章节:经文-经文,经文-经文
reference = BibleReferenceParser().parse('Genesis 1:1-5,8-10');
print(reference ==
Reference(
BibleBook.genesis,
segments: [
ReferenceSegment.multipleVerses(1, 1, 5),
ReferenceSegment.multipleVerses(1, 8, 10),
],
)); // 打印 true
// 书名 章节:经文-经文;章节:经文-经文
reference = BibleReferenceParser().parse('Genesis 1:1-5;2:1-3');
print(reference ==
Reference(
BibleBook.genesis,
segments: [
ReferenceSegment.multipleVerses(1, 1, 5),
ReferenceSegment.multipleVerses(2, 1, 3),
],
)); // 打印 true
// 书名 章节:经文-章节:经文
reference = BibleReferenceParser().parse('Genesis 1:5-2:3');
print(reference ==
Reference(
BibleBook.genesis,
segments: [
ReferenceSegment(ReferencePoint(1, 5), ReferencePoint(2, 3)),
],
)); // 打印 true
// 单章节书籍的经文
reference = BibleReferenceParser().parse('2 John 9');
print(reference ==
Reference(
BibleBook.john2,
segments: [
ReferenceSegment.singleVerse(1, 9),
],
)); // 打印 true
// 使用默认语言环境:AppLocale.tgl
// 书名
reference = BibleReferenceParser().parse('Gawa', locale: AppLocale.tgl);
print(reference == Reference(BibleBook.acts)); // 打印 true
// 书名 章节
reference = BibleReferenceParser().parse('Gawa 1', locale: AppLocale.tgl);
print(reference ==
Reference(
BibleBook.acts,
segments: [ReferenceSegment.singleChapter(1)],
)); // 打印 true
// 书名 章节-章节
reference = BibleReferenceParser().parse('Gawa 1-2', locale: AppLocale.tgl);
print(reference ==
Reference(
BibleBook.acts,
segments: [ReferenceSegment.multipleChapters(1, 2)],
)); // 打印 true
// 书名 章节:经文
reference = BibleReferenceParser().parse('Gawa 1:1', locale: AppLocale.tgl);
print(reference ==
Reference(
BibleBook.acts,
segments: [ReferenceSegment.singleVerse(1, 1)],
)); // 打印 true
// 书名 章节:经文-经文
reference = BibleReferenceParser().parse('Gawa 1:1-5', locale: AppLocale.tgl);
print(reference ==
Reference(
BibleBook.acts,
segments: [ReferenceSegment.multipleVerses(1, 1, 5)],
)); // 打印 true
// 书名 章节:经文,经文
reference = BibleReferenceParser().parse('Gawa 1:1,5', locale: AppLocale.tgl);
print(reference ==
Reference(
BibleBook.acts,
segments: [
ReferenceSegment.singleVerse(1, 1),
ReferenceSegment.singleVerse(1, 5),
],
)); // 打印 true
// 书名 章节:经文-经文,经文-经文
reference =
BibleReferenceParser().parse('Gawa 1:1-5,8-10', locale: AppLocale.tgl);
print(reference ==
Reference(
BibleBook.acts,
segments: [
ReferenceSegment.multipleVerses(1, 1, 5),
ReferenceSegment.multipleVerses(1, 8, 10),
],
)); // 打印 true
// 书名 章节:经文-经文;章节:经文-经文
reference =
BibleReferenceParser().parse('Gawa 1:1-5;2:1-3', locale: AppLocale.tgl);
print(reference ==
Reference(
BibleBook.acts,
segments: [
ReferenceSegment.multipleVerses(1, 1, 5),
ReferenceSegment.multipleVerses(2, 1, 3),
],
)); // 打印 true
// 书名 章节:经文-章节:经文
reference =
BibleReferenceParser().parse('Gawa 1:5-2:3', locale: AppLocale.tgl);
print(reference ==
Reference(
BibleBook.acts,
segments: [
ReferenceSegment(ReferencePoint(1, 5), ReferencePoint(2, 3)),
],
)); // 打印 true
// 单章节书籍的经文
reference = BibleReferenceParser().parse('2 Juan 9', locale: AppLocale.tgl);
print(reference ==
Reference(
BibleBook.john2,
segments: [
ReferenceSegment.singleVerse(1, 9),
],
)); // 打印 true
}
更多关于Flutter圣经引用插件biblereference的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter圣经引用插件biblereference的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter项目中,使用biblereference
插件可以方便地引用和处理圣经文本。以下是一个示例代码,展示如何在Flutter应用中集成和使用biblereference
插件。
首先,确保你已经在pubspec.yaml
文件中添加了biblereference
依赖:
dependencies:
flutter:
sdk: flutter
biblereference: ^最新版本号 # 请替换为最新的版本号
然后,运行flutter pub get
来获取依赖。
接下来,你可以在你的Dart文件中使用biblereference
插件。以下是一个简单的示例,展示如何引用圣经文本并将其显示在屏幕上:
import 'package:flutter/material.dart';
import 'package:biblereference/biblereference.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Bible Reference Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: BibleReferenceExample(),
);
}
}
class BibleReferenceExample extends StatefulWidget {
@override
_BibleReferenceExampleState createState() => _BibleReferenceExampleState();
}
class _BibleReferenceExampleState extends State<BibleReferenceExample> {
String? bibleVerse;
@override
void initState() {
super.initState();
_fetchBibleVerse();
}
Future<void> _fetchBibleVerse() async {
try {
// 初始化BibleReference插件
final BibleReference bibleReference = BibleReference();
// 获取圣经文本,这里以约翰福音3:16为例
String reference = 'John 3:16';
String? verseText = await bibleReference.getVerse(reference);
// 更新状态
setState(() {
bibleVerse = verseText;
});
} catch (e) {
print('Error fetching Bible verse: $e');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Bible Reference Example'),
),
body: Center(
child: bibleVerse != null
? Text(
'Bible Verse: $bibleVerse',
style: TextStyle(fontSize: 20),
)
: CircularProgressIndicator(),
),
);
}
}
在这个示例中,我们做了以下几件事:
- 在
pubspec.yaml
文件中添加了biblereference
依赖。 - 创建了一个Flutter应用,并在主屏幕(
BibleReferenceExample
)中初始化BibleReference
插件。 - 使用
bibleReference.getVerse(reference)
方法获取指定的圣经文本(例如,约翰福音3:16)。 - 将获取到的圣经文本显示在屏幕上。如果正在加载文本,则显示一个进度指示器。
请注意,biblereference
插件的具体实现和API可能会有所不同,因此建议查阅最新的官方文档以获取最准确的信息和API用法。此外,确保你有网络连接,因为获取圣经文本可能需要从远程服务器加载数据。