Flutter古兰经云服务插件alquran_cloud的使用

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

Flutter古兰经云服务插件alquran_cloud的使用

alquran_cloud 是一个非官方的 API 封装库,用于访问免费的伊斯兰教 API(alquran.cloud)。该库允许开发者获取古兰经的不同版本、章节、节段等信息。

使用方法

以下是如何使用 alquran_cloud 插件的基本示例:

import 'package:alquran_cloud/alquran_cloud.dart' as quran_cloud;

void main(List<String> args) async {
  /// 启用日志记录(默认禁用)
  quran_cloud.quranCloud.enableLogs = true;

  /// 获取所有版本
  final allEditions = await quran_cloud.getAllEditions();

  /// 查询特定格式的语言类型
  final editionsQuery = await quran_cloud.getAllEditions(
    format: 'text', // 或者 'audio'
    language: 'ar', // 使用 .getEditionSupportedLanguages(); 方法获取所有可用语言
    type: 'quran', // 使用 .getEditionTypes() 方法获取所有可用类型
  );

  /// 获取特定版本的古兰经
  final quran = await quran_cloud.getQuranByEdition(allEditions.first);

  /// 通过章节编号和版本查询章节
  final surah = await quran_cloud.getSurahByEdition(1, editionsQuery.first);

  /// 通过节段编号和版本查询节段
  final aya = await quran_cloud.getAyaByNumber(2, editionsQuery.first);

  print(aya.text); // 输出: الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ
}

支持的端点

  • ✅ 版本
  • ✅ 古兰经
  • ✅ 节段
  • ✅ 章节
  • ✅ 节
  • ❌ 段落
  • ❌ 小节
  • ❌ 页
  • ❌ 半章
  • ❌ 四分之一章
  • ❌ 礼拜鞠躬
  • ❌ 元数据

特性

示例代码

以下是完整的示例代码,可以在 GitHub 上查看:

import 'package:alquran_cloud/alquran_cloud.dart' as quran_cloud;

Future<void> main(List<String> args) async {
  /// 启用日志记录(默认禁用)
  quran_cloud.quranCloud.enableLogs = true;

  /// 获取所有版本
  final allEditions = await quran_cloud.getAllEditions();

  /// 查询特定格式的语言类型
  final editionsQuery = await quran_cloud.getAllEditions(
    format: 'text', // 或者 'audio'
    language: 'ar', // 使用 .getEditionSupportedLanguages(); 方法获取所有可用语言
    type: 'quran', // 使用 .getEditionTypes() 方法获取所有可用类型
  );

  /// 获取特定版本的古兰经
  final quran = await quran_cloud.getQuranByEdition(allEditions.first);

  /// 通过章节编号和版本查询章节
  final surah = await quran_cloud.getSurahByEdition(1, editionsQuery.first);

  /// 通过节段编号和版本查询节段
  final aya = await quran_cloud.getAyaByNumber(2, editionsQuery.first);

  print(aya.text); // 输出: الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ
}

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

1 回复

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


当然,以下是如何在Flutter项目中使用alquran_cloud插件的一个示例。这个插件通常用于从云服务中获取古兰经的数据。假设你已经有一个Flutter项目,并且希望在项目中集成alquran_cloud插件,以下是具体步骤和代码示例。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加alquran_cloud依赖:

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

然后运行flutter pub get来获取依赖。

2. 导入插件

在你需要使用alquran_cloud插件的Dart文件中导入它:

import 'package:alquran_cloud/alquran_cloud.dart';

3. 初始化插件并获取数据

以下是一个示例代码,展示如何初始化插件并从云服务中获取古兰经的章节和经文数据:

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

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  late AlquranCloud _alquranCloud;
  late List<Surah> _surahList;
  late List<Ayah> _ayahList;

  @override
  void initState() {
    super.initState();
    _alquranCloud = AlquranCloud();

    // 获取所有章节列表
    _alquranCloud.getSurahList().then((value) {
      setState(() {
        _surahList = value;
      });
    }).catchError((error) {
      print('Error fetching surah list: $error');
    });

    // 获取特定章节的经文列表(例如第1章)
    _alquranCloud.getAyahListBySurahId(1).then((value) {
      setState(() {
        _ayahList = value;
      });
    }).catchError((error) {
      print('Error fetching ayah list: $error');
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Al-Quran Cloud Example'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              Text('Surah List:', style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold)),
              SizedBox(height: 10),
              _surahList.isEmpty
                  ? CircularProgressIndicator()
                  : ListView.builder(
                      shrinkWrap: true,
                      itemCount: _surahList.length,
                      itemBuilder: (context, index) {
                        return ListTile(
                          title: Text(_surahList[index].name!),
                          subtitle: Text('Chapter: ${_surahList[index].number!}'),
                        );
                      },
                    ),
              SizedBox(height: 20),
              Text('Ayah List for Surah 1:', style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold)),
              SizedBox(height: 10),
              _ayahList.isEmpty
                  ? CircularProgressIndicator()
                  : ListView.builder(
                      shrinkWrap: true,
                      itemCount: _ayahList.length,
                      itemBuilder: (context, index) {
                        return ListTile(
                          title: Text(_ayahList[index].text!),
                          subtitle: Text('Verse: ${_ayahList[index].number!}'),
                        );
                      },
                    ),
            ],
          ),
        ),
      ),
    );
  }
}

// Surah 和 Ayah 类可能需要根据实际插件提供的模型进行调整
class Surah {
  int? number;
  String? name;

  Surah({this.number, this.name});
}

class Ayah {
  int? number;
  String? text;

  Ayah({this.number, this.text});
}

注意

  1. 模型调整SurahAyah类可能需要根据实际插件提供的模型进行调整。你可以查看alquran_cloud插件的文档或源代码以获取准确的模型定义。

  2. 错误处理:示例代码中包含了基本的错误处理,但在实际应用中,你可能需要更详细的错误处理逻辑。

  3. UI优化:示例中的UI非常基础,你可能需要根据实际需求进行优化和美化。

  4. API限制:请注意,使用云服务可能受到API调用频率和数量的限制,确保你了解并遵守这些限制。

通过上述步骤,你应该能够在Flutter项目中成功集成alquran_cloud插件,并从云服务中获取古兰经数据。

回到顶部