Flutter圣经引用插件biblereference的使用

发布于 1周前 作者 phonegap100 来自 Flutter

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(),
      ),
    );
  }
}

在这个示例中,我们做了以下几件事:

  1. pubspec.yaml文件中添加了biblereference依赖。
  2. 创建了一个Flutter应用,并在主屏幕(BibleReferenceExample)中初始化BibleReference插件。
  3. 使用bibleReference.getVerse(reference)方法获取指定的圣经文本(例如,约翰福音3:16)。
  4. 将获取到的圣经文本显示在屏幕上。如果正在加载文本,则显示一个进度指示器。

请注意,biblereference插件的具体实现和API可能会有所不同,因此建议查阅最新的官方文档以获取最准确的信息和API用法。此外,确保你有网络连接,因为获取圣经文本可能需要从远程服务器加载数据。

回到顶部