Flutter宗教信息查看插件dzikr的使用
Flutter宗教信息查看插件dzikr的使用
Bismillah, Alhamdulillah, Washalatu Wasalam 'Ala Rasulillah.
赞主颂圣,愿真主赐福我们的先知穆罕默德。
现代科技发展迅速。我们知道,技术可以成为帮助我们完成日常任务和工作的强大工具。如果使用得当,它还能支持我们的敬拜活动。通过手机等设备,我们可以轻松访问祈祷时间表、古兰经和一系列祷文等基础工具。
这些工具现在非常普遍,你可以在各种应用中看到它们的身影。因此,我们受到启发,希望通过Dzikr插件让开发者能够快速、轻松地将这些功能带给用户。
Dzikr简介
Dzikr 是一个为Flutter开发准备的伊斯兰特色工具集合。它整合了许多依赖项和API,并将它们组织处理为可以直接在你的应用程序中使用的功能。
工具列表
以下是Dzikr的主要工具清单:
- Prayer Time Tool(祈祷时间工具)
- Quran Tool(古兰经工具)
- Book Tool(用于祷文的书籍工具)
当前版本信息
警告
Dzikr目前处于测试阶段。部分功能仍在最佳实践研究中,可能会有bug,未来版本可能会发生重大更改。
安装
使用pub
安装:
flutter pub add dzikr
注意
每个特定工具都有其需求,你可以从每个工具的部分了解具体要求。
提示:祈祷工具需要在Android清单文件和iOS的Info.plist中添加位置权限,因为该工具包含geolocator;古兰经工具需要静态的古兰经.json
文件;书籍工具同样如此。
在你的Dart文件中使用Dzikr时,导入它:
import 'package:dzikr/dzikr.dart';
祈祷时间工具
祈祷时间工具基于用户的位置显示祈祷时间表,该包包含geolocator并需要GPS权限。该工具返回今天的祈祷时间和每月的祈祷时间表,还可以显示设备位置信息。
要求
该包包括需要用户授权的geocoding
。请遵循官方的Geocoding 使用指南,为Android和iOS添加权限。
完成后,工具即可使用。
使用
- 初始化工具
QuranTool quranTool = QuranTool.init();
- 获取祈祷时间
getPrayerTime() async {
try {
PrayerTimeTool prayerTimeTool = await PrayerTimeTool.init();
PrayerTime prayer = prayerTimeTool.prayer;
} on DzikrErrorConfig catch (error) {
// 错误处理
print(error.message);
}
}
- 向用户展示数据
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(prayer
.todaySchedule.closestPrayer.closestPrayer,
style: ThemeConfig.textTheme(context)
.headline1
),
Text(prayer.todaySchedule.closestPrayer.closestTime,
style: ThemeConfig.textTheme(context)
.headline2
),
Text("${PrayerTimeTool.findClosestPrayerTime(prayer).todaySchedule.closestPrayer.durationToClosestPrayer.inMinutes} 分钟到 ${prayer.todaySchedule.closestPrayer.closestPrayer}"),
],
);
效果很棒✨,感谢真主。
古兰经工具
古兰经是我们希望在本包中实现的最重要的功能之一。该功能仍处于开发阶段,代码有些小问题,但已经可用!
该工具提供了两种模式:页面模式和列表模式。最酷的部分是古兰经工具提供了即时渲染的小部件,我们将详细说明如何使用它。
要求
古兰经工具使用的是静态的古兰经数据,你需要先下载数据,将其放入assets/quran
目录中,并在pubspec.yaml
中注册资产路径后才能使用。
- 下载工具:(暂未提供)
- 将
quran
目录放入项目的./assets
文件夹中。 - 在
pubspec.yaml
中注册资产路径,如下所示:
assets:
- assets/quran/
完成后,工具即可使用。
使用
最简单的方法是使用[QuranPageReader]
向用户展示古兰经。
- 在页面或小部件中返回古兰经页面。
class QuranPage extends StatelessWidget {
const QuranPage({Key? key}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return QuranPageReader(
config: QuranPageReaderConfig(),
);
}
}
如果没有错误,古兰经数据将会被处理并展示给用户。
-
通过参数设置初始要显示的古兰经页码,甚至可以为
[QuranPageReader]
添加appbar,或者监听用户翻页。 -
使用
[QuranPageReaderConfig]
可以设置颜色和主题,选择使用页面模式还是列表模式,以及是否显示底部页码指示器。
那么,如何展示章节和段落呢?古兰经工具会为你提供数据。
- 初始化古兰经工具
QuranTool quranTool = QuranTool.init();
- 获取数据
QuranJuzs juzs = await quranTool.getQuranJuzs();
QuranChapters surah = await quranTool.getQuranChapter();
你还可以手动获取整个古兰经数据,而无需使用[QuranPageReader]
。
List<QuranPage> pages = await quranTool.getQuranPages();
书籍工具
书籍工具实际上是用于展示祷文和祈祷的小部件,我们称之为书籍,因为它包含了一组祈祷和祷文的列表。不仅如此,在未来我们还希望呈现圣训书籍。
与古兰经工具类似,你需要先下载书籍数据。
要求
- 下载工具:(暂未提供)
- 将
quran
目录放入项目的./assets
文件夹中。 - 在
pubspec.yaml
中注册资产路径,如下所示:
assets:
- assets/book/
使用
- 初始化工具
BookTool bookTool = BookTool.init();
- 获取数据
List<Book> duaBook = await bookTool.getDuaBook();
List<Book> dzikrBook = await bookTool.getDzikrBook();
-
向用户展示祷文和祈祷,你可以使用
ListView
来渲染每个项目。 -
你可以自行处理书籍详情,也可以通过
[DzikrReader]
轻松实现,如下所示:
class DzikrDetailPage extends StatelessWidget {
const DzikrDetailPage({Key? key, required this.book}) : super(key: key);
final Book book;
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarWidget.getAppBar(context, title: book.title!),
body: DzikrReader(book: book),
);
}
}
更多关于Flutter宗教信息查看插件dzikr的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter宗教信息查看插件dzikr的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
dzikr
是一个用于在 Flutter 应用中查看和管理宗教信息(如伊斯兰教祈祷文、古兰经经文等)的插件。它可以帮助开发者在应用中轻松集成这些功能,为用户提供方便的宗教内容访问。
以下是如何在 Flutter 项目中使用 dzikr
插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 dzikr
插件的依赖。
dependencies:
flutter:
sdk: flutter
dzikr: ^1.0.0 # 请确保使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 导入插件
在需要使用 dzikr
插件的 Dart 文件中,导入插件:
import 'package:dzikr/dzikr.dart';
3. 使用插件
dzikr
插件提供了多种功能,比如获取祈祷文、古兰经经文等。以下是一些基本的使用示例:
获取祈祷文
import 'package:flutter/material.dart';
import 'package:dzikr/dzikr.dart';
class DzikrPage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Dzikr'),
),
body: FutureBuilder<List<Dzikr>>(
future: Dzikr.getDzikrList(), // 获取祈祷文列表
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
} else if (snapshot.hasError) {
return Center(child: Text('Error: ${snapshot.error}'));
} else if (!snapshot.hasData || snapshot.data!.isEmpty) {
return Center(child: Text('No data available'));
} else {
return ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder: (context, index) {
var dzikr = snapshot.data![index];
return ListTile(
title: Text(dzikr.title),
subtitle: Text(dzikr.content),
onTap: () {
// 处理点击事件
},
);
},
);
}
},
),
);
}
}
获取古兰经经文
import 'package:flutter/material.dart';
import 'package:dzikr/dzikr.dart';
class QuranPage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Quran'),
),
body: FutureBuilder<List<QuranAyah>>(
future: Quran.getAyahList(surahNumber: 1), // 获取第一章的古兰经经文
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
} else if (snapshot.hasError) {
return Center(child: Text('Error: ${snapshot.error}'));
} else if (!snapshot.hasData || snapshot.data!.isEmpty) {
return Center(child: Text('No data available'));
} else {
return ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder: (context, index) {
var ayah = snapshot.data![index];
return ListTile(
title: Text(ayah.arabicText),
subtitle: Text(ayah.translation),
onTap: () {
// 处理点击事件
},
);
},
);
}
},
),
);
}
}