Flutter马来西亚祈祷时间查询插件malaysia_prayer_time的使用

Flutter马来西亚祈祷时间查询插件malaysia_prayer_time的使用

JAKIM e-Solat API封装包用于Flutter(iOS, Android)

主要功能:

  • 获取马来西亚各地区列表
  • 获取马来西亚各州列表
  • 按州获取马来西亚各地区列表
  • 获取今日祈祷时间
  • 获取本周祈祷时间
  • 获取本月祈祷时间
  • 获取本年祈祷时间
  • 获取特定时间段内的祈祷时间

下一步计划:

  • 支持iOS
  • 实现缓存功能
  • 添加本地通知支持

开始使用

初始配置(Android)

要使用malaysia_prayer_time插件,请按照以下步骤操作:

  1. malaysia_prayer_time插件添加到项目的pubspec.yaml文件中:
flutter pub add malaysia_prayer_time
  1. 添加依赖后,运行以下命令以获取该包:
flutter pub get
  1. 给您的Flutter应用添加互联网权限。在主、调试和发布模式下的AndroidManifest.xml文件中添加以下行:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">
   <application>
        ...
    </application>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
</manifest>

示例代码

以下是一个完整的示例代码,展示了如何使用malaysia_prayer_time插件来获取不同时间段的祈祷时间。

import 'package:malaysia_prayer_time.dart';

// 创建一个列表来存储区域数据
List<Zone> zone = Zone.all();

// 创建一个列表来存储州数据
List<States> states = States.all().first;

// 创建变量来存储祈祷时间数据
late PrayerTime todayPrayerTime;
late List<PrayerTime> thisWeekPrayerTime;
late List<PrayerTime> thisMonthPrayerTime;
late List<PrayerTime> thisYearPrayerTime;
late List<PrayerTime> specificMonthPrayerTime;
late List<PrayerTime> specificYearPrayerTime;

// 返回指定区域的今日祈祷时间
todayPrayerTime = MalaysiaPrayerTime.today(zone: zone);

// 返回指定区域的本周祈祷时间
thisWeekPrayerTime = MalaysiaPrayerTime.week(zone: zone);

// 返回指定区域的本月祈祷时间
thisMonthPrayerTime = MalaysiaPrayerTime.month(zone: zone);

// 返回指定区域的本年祈祷时间
thisYearPrayerTime = MalaysiaPrayerTime.year(zone: zone);

// 返回指定区域和年份的全年祈祷时间
specificYearPrayerTime = MalaysiaPrayerTime.year(zone: zone, year: "2021");

// 返回指定区域、年份和月份的祈祷时间
specificMonthPrayerTime = MalaysiaPrayerTime.duration(zone: zone, datestart: "2021-04-20", dateend: "2021-05-30");

更多关于Flutter马来西亚祈祷时间查询插件malaysia_prayer_time的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter马来西亚祈祷时间查询插件malaysia_prayer_time的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中集成并使用malaysia_prayer_time插件的示例代码。这个插件允许你获取马来西亚的祈祷时间。

第一步:添加依赖

首先,你需要在pubspec.yaml文件中添加malaysia_prayer_time依赖。

dependencies:
  flutter:
    sdk: flutter
  malaysia_prayer_time: ^latest_version  # 请确保使用最新版本号

第二步:导入插件

在你的Dart文件中,导入malaysia_prayer_time插件。

import 'package:malaysia_prayer_time/malaysia_prayer_time.dart';

第三步:获取祈祷时间

以下是一个完整的示例,展示如何使用malaysia_prayer_time插件来获取和显示马来西亚的祈祷时间。

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

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

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

class _MyAppState extends State<MyApp> {
  late PrayerTimes prayerTimes;

  @override
  void initState() {
    super.initState();
    _getPrayerTimes();
  }

  Future<void> _getPrayerTimes() async {
    // 设置城市(例如吉隆坡)的经纬度
    double latitude = 3.139003;
    double longitude = 101.686852;

    // 获取当前日期
    DateTime date = DateTime.now();

    // 使用malaysia_prayer_time插件获取祈祷时间
    try {
      prayerTimes = await MalaysiaPrayerTime.getPrayerTimes(
        latitude: latitude,
        longitude: longitude,
        date: date,
        method: PrayerMethod.islamic_society_of_north_america, // 可以选择其他方法
      );
      setState(() {}); // 更新UI
    } catch (e) {
      print('Error fetching prayer times: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Malaysia Prayer Times'),
        ),
        body: Center(
          child: prayerTimes != null
              ? Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    Text('Fajr: ${prayerTimes.fajr}'),
                    Text('Sunrise: ${prayerTimes.sunrise}'),
                    Text('Dhuhr: ${prayerTimes.dhuhr}'),
                    Text('Asr: ${prayerTimes.asr}'),
                    Text('Maghrib: ${prayerTimes.maghrib}'),
                    Text('Isha: ${prayerTimes.isha}'),
                  ],
                )
              : CircularProgressIndicator(),
        ),
      ),
    );
  }
}

解释

  1. 添加依赖:在pubspec.yaml中添加malaysia_prayer_time依赖。
  2. 导入插件:在需要使用插件的Dart文件中导入malaysia_prayer_time
  3. 获取祈祷时间
    • 使用MalaysiaPrayerTime.getPrayerTimes方法获取指定经纬度和日期的祈祷时间。
    • initState中调用该方法,并在获取成功后更新UI。
  4. 显示祈祷时间:在UI中使用Text组件显示获取的祈祷时间。如果数据尚未加载完成,则显示一个CircularProgressIndicator

这个示例代码展示了如何在Flutter应用中集成并使用malaysia_prayer_time插件来获取和显示马来西亚的祈祷时间。你可以根据需要进一步定制和扩展这个示例。

回到顶部