Flutter古兰经阅读插件quran_uz的使用

Flutter古兰经阅读插件quran_uz的使用

Qur’oni Karim

platform pub package mit lisense version contributors commits

欢迎使用Qur’oni Karim插件!

此插件可以帮助你开发包含古兰经的阅读应用。它包含了以下内容:

  • 章节列表

  • 章节名称

  • 章节的阿拉伯语名称

  • 章节的降示地点(麦加或麦地那)

  • 章节中的节数

  • 节文本

  • 无音标的阿拉伯语节文本

  • 节的翻译文本

  • 章节编号

  • 连续章节编号

安装

通过终端安装

如果你想要在Dart项目中安装此插件,可以在终端中输入以下命令:

dart pub add quran_uz

如果你正在开发一个Flutter项目,可以使用以下命令:

flutter pub add quran_uz

使用

首先,导入quran_uz包:

import 'package:quran_uz/quran_uz.dart';

创建一个QuranUz类的实例:

QuranUz quranUz = QuranUz();

获取章节列表:

// 遍历所有章节并打印相关信息
for (var sura in quranUz.suraList) {
    print('章节编号: ${sura.id}');
    print('地点: ${sura.isMakki! ? "麦加" : "麦地那"}');
    print('阿拉伯语名称: ${sura.nameAr}');
    print('乌兹别克语名称: ${sura.nameUz}');
}

获取所有节的列表:

// 遍历所有节并打印相关信息
for (var verse in quranUz.verseList) {
    print('节编号: ${verse.verseId}');
    print('阿拉伯语文本: ${verse.arabic}');
    print('翻译文本: ${verse.meaning}');
}

根据章节编号获取章节信息:

// 获取第36章的信息
Sura sura = quranUz.getSuraById(36);

获取指定章节的所有节:

// 获取指定章节的所有节
List<Verse> verses = quranUz.getVerseListBySuraId(sura.id!);
print(verses.length);

反馈与建议

如果您发现此插件有任何问题,请在GitHub的issues页面提交。如果您想为该插件添加一些便利功能,欢迎您作为贡献者加入GitHub。


示例代码

以下是一个完整的示例代码,展示了如何使用quran_uz插件来获取章节和节的相关信息。

import 'package:quran_uz/quran_uz.dart';

void main(List<String> args) {
  /// 创建一个QuranUz类的实例。
  QuranUz quranUz = QuranUz();

  /// 通过章节编号获取章节对象。
  Sura sura = quranUz.getSuraById(36);
  // print(sura.toJson());

  /// 通过章节编号获取章节的所有节。
  List<Verse> verses = quranUz.getVerseListBySuraId(sura.id);
  print(verses.length);
}

更多关于Flutter古兰经阅读插件quran_uz的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter古兰经阅读插件quran_uz的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中集成和使用quran_uz插件的示例代码。quran_uz插件(假设这是一个提供古兰经阅读功能的Flutter插件)可能会包含访问古兰经章节、经文以及提供阅读功能的API。

首先,确保你的Flutter项目已经创建,并且在pubspec.yaml文件中添加了quran_uz插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  quran_uz: ^最新版本号  # 请替换为实际的最新版本号

然后运行以下命令来安装依赖:

flutter pub get

接下来,在你的Flutter项目中,你可以使用quran_uz插件来读取和显示古兰经的内容。以下是一个简单的示例,展示如何使用这个插件:

import 'package:flutter/material.dart';
import 'package:quran_uz/quran_uz.dart';  // 假设插件提供了这样的导入路径

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Quran Reader',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: QuranReaderScreen(),
    );
  }
}

class QuranReaderScreen extends StatefulWidget {
  @override
  _QuranReaderScreenState createState() => _QuranReaderScreenState();
}

class _QuranReaderScreenState extends State<QuranReaderScreen> {
  late QuranUz quranPlugin;
  late List<Chapter> chapters;
  late String? selectedChapterText;

  @override
  void initState() {
    super.initState();
    quranPlugin = QuranUz();
    loadChapters();
  }

  Future<void> loadChapters() async {
    try {
      chapters = await quranPlugin.getChapters();
      setState(() {});
    } catch (e) {
      print("Error loading chapters: $e");
    }
  }

  Future<void> loadChapterText(int chapterNumber) async {
    try {
      List<Verse> verses = await quranPlugin.getChapterVerses(chapterNumber);
      selectedChapterText = verses.map((verse) => verse.text).join('\n');
      setState(() {});
    } catch (e) {
      print("Error loading chapter text: $e");
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Quran Reader'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            DropdownButton<int>(
              value: null,
              hint: Text('Select Chapter'),
              onChanged: (newValue) {
                if (newValue != null) {
                  loadChapterText(newValue);
                }
              },
              items: chapters.map((chapter) {
                return DropdownMenuItem<int>(
                  value: chapter.number,
                  child: Text('Chapter ${chapter.number}: ${chapter.name}'),
                );
              }).toList(),
            ),
            SizedBox(height: 16),
            if (selectedChapterText != null)
              Text(
                selectedChapterText!,
                style: TextStyle(fontSize: 18),
              ),
          ],
        ),
      ),
    );
  }
}

// 假设插件返回的数据结构如下
class Chapter {
  final int number;
  final String name;

  Chapter({required this.number, required this.name});
}

class Verse {
  final int number;
  final String text;

  Verse({required this.number, required this.text});
}

注意

  1. 示例中的QuranUz类及其方法(如getChaptersgetChapterVerses)是假设的,实际插件可能会有不同的API和类名。请查阅quran_uz插件的官方文档以获取正确的使用方法。
  2. ChapterVerse类也是假设的数据结构,实际插件可能会提供不同的数据结构。

在实际使用中,你需要根据quran_uz插件的文档来调整代码,特别是API调用和数据结构部分。

回到顶部