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

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

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

插件介绍

quran_sharif 是一个为Flutter开发的包,提供了从古兰经中获取信息的实用函数,如苏哈拉(Surahs)、阿亚(Ayahs)和其他相关数据。

Quran

特性

  • 英文和阿拉伯文版本的完整古兰经文本
  • 支持不同翻译之间的切换
  • 美丽的格式化显示,可调整字体大小
  • 获取所有苏哈拉
  • 按ID获取特定苏哈拉
  • 获取苏哈拉名称列表
  • 按启示类型过滤苏哈拉
  • 通过Juz ID获取阿亚

安装

pubspec.yaml文件中添加以下行:

dependencies:
  quran_sharif: <latest_version>

然后运行flutter pub get以获取该包。

使用示例

将以下代码导入到你的Dart文件中:

import 'package:quran_sharif/quran_sharif.dart';

使用提供的方法访问古兰经数据:

// 获取所有苏哈拉
List<Surahs> allSurahs = Quran.getAllSurah();
print('All Surahs:');
allSurahs.forEach((surah) {
  print('${surah.number}: ${surah.name}');
});

// 按ID获取特定苏哈拉
int surahId = 1; // 示例:苏哈拉 Al-Fatiha
Surahs? surah = Quran.getSurahById(id: surahId);
if (surah != null) {
  print('\nSurah $surahId:');
  print('Name: ${surah.name}');
  print('Revelation Type: ${surah.revelationType}');
} else {
  print('Surah not found');
}

// 获取苏哈拉名称列表
List<String> surahNames = Quran.getSurahName();
print('\nSurah Names:');
surahNames.forEach((name) {
  print(name);
});

// 按启示类型过滤苏哈拉
bool isMakki = true; // 示例:过滤麦基苏哈拉
List<Surahs> makkiSurahs = Quran.getSurahByRevelationType(isMakki: isMakki);
print('\nMakki Surahs:');
makkiSurahs.forEach((surah) {
  print('${surah.number}: ${surah.name}');
});

// 通过Juz ID获取阿亚
int juzId = 1; // 示例:Juz 1
List<Ayahs> juzAyahs = Quran.getJuz(id: juzId);
print('\nJuz $juzId Ayahs:');
juzAyahs.forEach((ayah) {
  print('Ayah ${ayah.numberInSurah}: ${ayah.text}');
});

更多详细信息和用法,请参阅API文档。

示例代码

你可以找到更多的使用示例在该仓库的example文件夹中:

import 'package:quran_sharif/quran_sharif.dart';

void main() {
  // 示例使用Quran类的方法

  // 获取所有苏哈拉
  List<Surahs> allSurahs = Quran.getAllSurah();
  print('All Surahs:');
  allSurahs.forEach((surah) {
    print('${surah.number}: ${surah.name}');
  });

  // 按ID获取特定苏哈拉
  int surahId = 1; // 示例:苏哈拉 Al-Fatiha
  Surahs? surah = Quran.getSurahById(id: surahId);
  if (surah != null) {
    print('\nSurah $surahId:');
    print('Name: ${surah.name}');
    print('Revelation Type: ${surah.revelationType}');
  } else {
    print('Surah not found');
  }

  // 获取苏哈拉名称列表
  List<String> surahNames = Quran.getSurahName();
  print('\nSurah Names:');
  surahNames.forEach((name) {
    print(name);
  });

  // 按启示类型过滤苏哈拉
  bool isMakki = true; // 示例:过滤麦基苏哈拉
  List<Surahs> makkiSurahs = Quran.getSurahByRevelationType(isMakki: isMakki);
  print('\nMakki Surahs:');
  makkiSurahs.forEach((surah) {
    print('${surah.number}: ${surah.name}');
  });

  // 通过Juz ID获取阿亚
  int jzId =  e; // 示例:Juz  a
  List<Ayahs> jzAyahs = Quran.getJuz(id: jzId);
  print('\nJuz $juzId Ayahs:');
  jzAyahs.forEach((ayah) {
    print('Ayah ${ayah.numberInSurah}: ${ayah.text}');
  });
}

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

1 回复

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


当然,以下是如何在Flutter项目中使用quran_sharif插件的一个简单示例。quran_sharif是一个Flutter插件,用于访问和操作古兰经的内容。

首先,确保你已经在你的Flutter项目的pubspec.yaml文件中添加了quran_sharif依赖:

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

然后,运行flutter pub get来安装依赖。

接下来,你可以在你的Dart文件中导入quran_sharif并使用它来访问古兰经的内容。以下是一个简单的示例代码,展示如何加载并显示古兰经的一个章节:

import 'package:flutter/material.dart';
import 'package:quran_sharif/quran_sharif.dart';

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

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

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

class _QuranReaderScreenState extends State<QuranReaderScreen> {
  late QuranSharif quranSharif;
  late List<String> ayahs;

  @override
  void initState() {
    super.initState();
    quranSharif = QuranSharif();
    loadChapter(1); // 加载第1章(法谛哈)
  }

  Future<void> loadChapter(int chapterNumber) async {
    try {
      var chapter = await quranSharif.getChapter(chapterNumber);
      setState(() {
        ayahs = chapter.ayahs.map((ayah) => ayah.text).toList();
      });
    } catch (e) {
      print("Error loading chapter: $e");
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Quran Sharif Reader'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: ayahs.isEmpty
            ? Center(child: CircularProgressIndicator())
            : ListView.builder(
                itemCount: ayahs.length,
                itemBuilder: (context, index) {
                  return Card(
                    child: Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text(
                        ayahs[index],
                        style: TextStyle(fontSize: 18),
                      ),
                    ),
                  );
                },
              ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () async {
          // 这里可以添加其他章节加载的逻辑,例如通过对话框选择章节
          // 这里只是简单演示,再次加载第1章
          await loadChapter(1);
        },
        tooltip: 'Reload Chapter',
        child: Icon(Icons.refresh),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个主屏幕QuranReaderScreen。在initState方法中,我们加载了古兰经的第1章(法谛哈),并将其中的每个经文(ayah)存储在ayahs列表中。然后,我们使用ListView.builder来显示这些经文。

注意:

  • QuranSharif类提供了多种方法来访问古兰经的内容,例如获取特定章节、特定经文等。
  • 在实际应用中,你可能需要添加更多的错误处理和用户交互逻辑,例如通过对话框让用户选择想要阅读的章节。
  • 确保你使用的quran_sharif插件版本与你的Flutter SDK版本兼容。

这个示例应该能够帮助你开始使用quran_sharif插件来开发一个古兰经阅读应用。

回到顶部