{"id":116,"date":"2025-05-03T18:25:15","date_gmt":"2025-05-03T18:25:15","guid":{"rendered":"https:\/\/www.webmobkey.com\/blog\/?p=116"},"modified":"2025-11-16T10:22:38","modified_gmt":"2025-11-16T10:22:38","slug":"flutter-notification-ornek-tam-kod","status":"publish","type":"post","link":"https:\/\/www.webmobdesign.com\/blog\/tr\/flutter-notification-ornek-tam-kod\/","title":{"rendered":"Flutter Notification \u00d6rnek Tam Kod"},"content":{"rendered":"\n<p>bu paketi indirin.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nflutter pub add flutter_local_notifications permission_handler\n<\/pre><\/div>\n\n\n<p>user-permission lar\u0131 AndroidManifest.xml\u2019e ekleyin.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;manifest xmlns:android=&quot;http:\/\/schemas.android.com\/apk\/res\/android&quot;&gt;\n    &lt;uses-permission android:name=&quot;android.permission.INTERNET&quot;\/&gt;\n    &lt;uses-permission android:name=&quot;android.permission.RECEIVE_BOOT_COMPLETED&quot;\/&gt;\n    &lt;uses-permission android:name=&quot;android.permission.VIBRATE&quot;\/&gt;\n    &lt;application\n        android:label=&quot;notification&quot;\n        android:name=&quot;${applicationName}&quot;\n        android:icon=&quot;@mipmap\/ic_launcher&quot;&gt;\n    ................................\n...................................\n..................................\n..................................\n<\/pre><\/div>\n\n\n<p>Bu Flutter kodu, cihazda yerel bildirim g\u00f6nderen bir uygulamad\u0131r. Uygulama ba\u015flat\u0131ld\u0131\u011f\u0131nda bildirim izni ister, saat 12:00 veya 16:57 oldu\u011funda otomatik bildirim g\u00f6sterir, ayr\u0131ca kullan\u0131c\u0131 butona basarak manuel bildirim g\u00f6nderebilir.<\/p>\n\n\n\n<p><strong>main.dart<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\nimport 'dart:async';\nimport 'package:flutter_local_notifications\/flutter_local_notifications.dart';\nimport 'package:permission_handler\/permission_handler.dart';\nimport 'package:flutter\/material.dart';\n\nclass NotificationService {\n  final FlutterLocalNotificationsPlugin notificationsPlugin =\n      FlutterLocalNotificationsPlugin();\n\n  Future&amp;lt;void&gt; initNotification() async {\n    AndroidInitializationSettings initializationSettingsAndroid =\n        const AndroidInitializationSettings(&quot;@mipmap\/ic_launcher&quot;);\n\n    var initializationSettingsIOS = DarwinInitializationSettings(\n        requestAlertPermission: true,\n        requestBadgePermission: true,\n        requestSoundPermission: true,\n        onDidReceiveLocalNotification:\n            (int id, String? title, String? body, String? payload) async {});\n\n    var initializationSettings = InitializationSettings(\n        android: initializationSettingsAndroid, iOS: initializationSettingsIOS);\n    await notificationsPlugin.initialize(initializationSettings,\n        onDidReceiveNotificationResponse:\n            (NotificationResponse notificationResponse) async {});\n  }\n\n  notificationDetails() {\n    return const NotificationDetails(\n        android: AndroidNotificationDetails('channelId', 'channelName',\n            importance: Importance.max),\n        iOS: DarwinNotificationDetails());\n  }\n\n  Future showNotification(\n      {int id = 0, String? title, String? body, String? payLoad}) async {\n    return notificationsPlugin.show(\n        id, title, body, await notificationDetails());\n  }\n}\n\n\nvoid main() async {\n  WidgetsFlutterBinding.ensureInitialized();\n  await Permission.notification.request().then((permissionStatus) {\n    if (permissionStatus.isGranted) {\n      NotificationService().initNotification();\n    }\n    runApp(const MyApp());\n  });\n}\n\nclass MyApp extends StatelessWidget {\n  const MyApp({Key? key}) : super(key: key);\n\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      title: 'Flutter Notifications',\n      debugShowCheckedModeBanner: false,\n      theme: ThemeData(\n        primarySwatch: Colors.blue,\n      ),\n      home: const MyHomePage(),\n    );\n  }\n}\n\nclass MyHomePage extends StatefulWidget {\n  const MyHomePage({Key? key}) : super(key: key);\n\n  @override\n  State&amp;lt;MyHomePage&gt; createState() =&gt; _MyHomePageState();\n}\n\nclass _MyHomePageState extends State&amp;lt;MyHomePage&gt; {\n  Timer? _timer;\n\n  @override\n  void initState() {\n    super.initState();\n    \/\/ Get current time\n    DateTime now = DateTime.now();\n\n    \/\/ If it's 12:00 right now, show the notification\n    if (now.hour == 12 &amp;amp;&amp;amp; now.minute == 0) {\n      NotificationService().showNotification(\n        id: 1,\n        title: '12:00 Notification',\n        body: 'It\\'s currently 12:00, showing notification.',\n      );\n    }\n\n    \/\/ Set up timer to check every second\n    _timer = Timer.periodic(Duration(seconds: 1), (timer) {\n      \/\/ If it's 16:57 right now, show the notification\n      if (DateTime.now().hour == 16 &amp;amp;&amp;amp; DateTime.now().minute == 57) {\n        NotificationService().showNotification(\n          id: 2,\n          title: '16:57 Notification',\n          body: 'It\\'s currently 16:57, showing notification.',\n        );\n        \/\/ Cancel timer because once the notification is shown, we don't need to continue\n        _timer?.cancel();\n      }\n    });\n  }\n\n  @override\n  void dispose() {\n    _timer?.cancel();\n    super.dispose();\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(\n        backgroundColor: Colors.black,\n        centerTitle: true,\n        title: Text(&quot;Flutter Notification Example&quot;,\n            style: TextStyle(color: Colors.white)),\n      ),\n      body: SafeArea(\n        child: Center(\n          child: ElevatedButton(\n            child: const Text('Show Notification'),\n            onPressed: () {\n              NotificationService().showNotification(\n                  id: 3,\n                  title: 'Test Notification',\n                  body: 'This is a test notification.');\n            },\n          ),\n        ),\n      ),\n    );\n  }\n}\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>bu paketi indirin. user-permission lar\u0131 AndroidManifest.xml\u2019e ekleyin. Bu Flutter kodu, cihazda yerel bildirim g\u00f6nderen bir uygulamad\u0131r. &hellip; <a title=\"Flutter Notification \u00d6rnek Tam Kod\" class=\"hm-read-more\" href=\"https:\/\/www.webmobdesign.com\/blog\/tr\/flutter-notification-ornek-tam-kod\/\"><span class=\"screen-reader-text\">Flutter Notification \u00d6rnek Tam Kod<\/span>Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-116","post","type-post","status-publish","format-standard","hentry","category-mobil-tr"],"_links":{"self":[{"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/posts\/116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/comments?post=116"}],"version-history":[{"count":1,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/posts\/116\/revisions"}],"predecessor-version":[{"id":331,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/posts\/116\/revisions\/331"}],"wp:attachment":[{"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/media?parent=116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/categories?post=116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/tags?post=116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}