• 04-11-2021, 11:52:00
    #1
    Arkadaşlar ne yaptıysam düzeltemedim (flutter- wordpress) altyapıısıyla bir uygulamam var herşey stabil ama attığım bildirimler bezen tıklayınca uygulama üzerin'den bildirimi açıyor bazen sadece üst sekmeden siliniyor uygulamaya yönlendirmiyor lütfen yardım edebilirmisin.
    Teşekkürler R10+

    ONESİGNAL kodlarının geçtiği yerler aşşağıda arkadaşlar ama sorun kodlardamı yoksa onesignal ayarlarındamı çözmedim

    MAİN.DART
    import 'package:async/async.dart';
    import 'package:firebase_core/firebase_core.dart';
    import 'package:firebase_crashlytics/firebase_crashlytics.dart';
    import 'package:firebase_remote_config/firebase_remote_config.dart';
    import 'package:flutter/material.dart';
    import 'package:flutter/widgets.dart';
    import 'package:flutter_localizations/flutter_localizations.dart';
    import 'package:flutter_mobx/flutter_mobx.dart';
    import 'package:google_mobile_ads/google_mobile_ads.dart';
    import 'package:goksoy_medya/AppLocalizations.dart';
    import 'package:goksoy_medya/AppTheme.dart';
    import 'package:goksoy_medya/models/FontSizeModel.dart';
    import 'package:goksoy_medya/screens/SplashScreen.dart';
    import 'package:goksoy_medya/store/AppStore.dart';
    import 'package:goksoy_medya/utils/Constants.dart';
    import 'package:nb_utils/nb_utils.dart';
    import 'package:onesignal_flutter/onesignal_flutter.dart';
    
    import 'models/LanguageModel.dart';
    import 'models/WeatherResponse.dart';
    
    AppStore appStore = AppStore();
    
    int mAdShowCount = 0;
    
    Language? language;
    List<Language> languages = Language.getLanguages();
    
    FontSizeModel? fontSize;
    List<FontSizeModel> fontSizes = FontSizeModel.fontSizes();
    
    Language? ttsLang;
    List<Language> ttsLanguage = Language.getLanguagesForTTS();
    
    var weatherMemoizer = AsyncMemoizer<WeatherResponse>();
    
    RemoteConfig? remoteConfig;
    int retryCount = 0;
    
    AppLocalizations? appLocale;
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
    
      defaultRadius = 10;
      defaultAppButtonRadius = 30;
      defaultBlurRadius = 4.0;
    
      await initialize(defaultDialogBorderRadius: 10);
    
      appStore.setLanguage(getStringAsync(LANGUAGE, defaultValue: defaultLanguage));
      appStore.setNotification(getBoolAsync(IS_NOTIFICATION_ON, defaultValue: true));
      appStore.setTTSLanguage(getStringAsync(TEXT_TO_SPEECH_LANG, defaultValue: defaultTTSLanguage));
    
      ///Uncomment below line if you want to skip https certificate
      //HttpOverrides.global = HttpOverridesSkipCertificate();
    
      int themeModeIndex = getIntAsync(THEME_MODE_INDEX);
      if (themeModeIndex == ThemeModeLight) {
        appStore.setDarkMode(false);
      } else if (themeModeIndex == ThemeModeDark) {
        appStore.setDarkMode(true);
      }
    
      fontSize = fontSizes.firstWhere((element) => element.fontSize == getIntAsync(FONT_SIZE_PREF, defaultValue: 16));
      ttsLang = ttsLanguage.firstWhere((element) => element.fullLanguageCode == getStringAsync(TEXT_TO_SPEECH_LANG, defaultValue: defaultTTSLanguage));
    
      if (isMobile) {
        await Firebase.initializeApp().then((value) {
          FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
          MobileAds.instance.initialize();
        });
    
        await OneSignal.shared.setAppId(mOneSignalAPPKey);
        OneSignal.shared.consentGranted(true);
        OneSignal.shared.promptUserForPushNotificationPermission();
    
        // OneSignal.shared.setInFocusDisplayType(OSNotificationDisplayType.notification);
      }
    
      setOrientationPortrait();
    
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Observer(
          builder: (_) => MaterialApp(
            navigatorKey: navigatorKey,
            title: mAppName,
            debugShowCheckedModeBanner: false,
            theme: AppTheme.lightTheme,
            darkTheme: AppTheme.darkTheme,
            themeMode: appStore.isDarkMode ? ThemeMode.dark : ThemeMode.light,
            supportedLocales: Language.languagesLocale(),
            localizationsDelegates: [AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate],
            localeResolutionCallback: (locale, supportedLocales) => locale,
            locale: Locale(appStore.selectedLanguageCode),
            home: SplashScreen(),
            scrollBehavior: SBehavior(),
          ),
        );
      }
    }
    NotificationService.swift
    import UserNotifications
    
    import OneSignal
    
    class NotificationService: UNNotificationServiceExtension {
        
        var contentHandler: ((UNNotificationContent) -> Void)?
        var receivedRequest: UNNotificationRequest!
        var bestAttemptContent: UNMutableNotificationContent?
        
        override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
            self.receivedRequest = request;
            self.contentHandler = contentHandler
            bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
            
            if let bestAttemptContent = bestAttemptContent {
                OneSignal.didReceiveNotificationExtensionRequest(self.receivedRequest, with: self.bestAttemptContent)
                contentHandler(bestAttemptContent)
            }
        }
        
        override func serviceExtensionTimeWillExpire() {
            // Called just before the extension will be terminated by the system.
            // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
            if let contentHandler = contentHandler, let bestAttemptContent =  bestAttemptContent {
                OneSignal.serviceExtensionTimeWillExpireRequest(self.receivedRequest, with: self.bestAttemptContent)
                contentHandler(bestAttemptContent)
            }
        }
    }
    DashboardScreen.dart
    import 'dart:ui';
    
    import 'package:flutter/material.dart';
    import 'package:flutter/services.dart';
    import 'package:flutter_mobx/flutter_mobx.dart';
    import 'package:flutter_vector_icons/flutter_vector_icons.dart';
    import 'package:goksoy_medya/AppLocalizations.dart';
    import 'package:goksoy_medya/components/AppWidgets.dart';
    import 'package:goksoy_medya/main.dart';
    import 'package:goksoy_medya/screens/ChooseTopicScreen.dart';
    import 'package:goksoy_medya/screens/HomeFragment.dart';
    import 'package:goksoy_medya/screens/LoginScreen.dart';
    import 'package:goksoy_medya/screens/NewsDetailScreen.dart';
    import 'package:goksoy_medya/screens/ProfileFragment.dart';
    import 'package:goksoy_medya/utils/Colors.dart';
    import 'package:goksoy_medya/utils/Common.dart';
    import 'package:goksoy_medya/utils/Constants.dart';
    import 'package:nb_utils/nb_utils.dart';
    import 'package:onesignal_flutter/onesignal_flutter.dart';
    import 'package:package_info/package_info.dart';
    
    import 'CategoryFragment.dart';
    import 'SearchNewsFragment.dart';
    import 'SuggestedForYouFragment.dart';
    
    class DashboardScreen extends StatefulWidget {
      static String tag = '/DashboardScreen';
    
      @override
      DashboardScreenState createState() => DashboardScreenState();
    }
    
    class DashboardScreenState extends State<DashboardScreen> with AfterLayoutMixin<DashboardScreen> {
      List<Widget> widgets = [];
      int currentIndex = 0;
    
      DateTime? currentBackPressTime;
    
      @override
      void initState() {
        super.initState();
        init();
      }
    
      init() async {
        setDynamicStatusBarColor();
    
        widgets.add(HomeFragment());
        widgets.add(SuggestedForYouFragment());
        widgets.add(CategoryFragment());
        widgets.add(SearchNewsFragment());
        widgets.add(ProfileFragment());
    
        setState(() {});
    
        LiveStream().on(checkMyTopics, (v) {
          currentIndex = 0;
          setState(() {});
        });
        LiveStream().on(tokenStream, (v) {
          LoginScreen(isNewTask: false).launch(context);
        });
    
        await Future.delayed(Duration(milliseconds: 400));
    
        if (getIntAsync(THEME_MODE_INDEX) == ThemeModeSystem) {
          appStore.setDarkMode(MediaQuery.of(context).platformBrightness == Brightness.dark);
        }
    
        window.onPlatformBrightnessChanged = () async {
          if (getIntAsync(THEME_MODE_INDEX) == ThemeModeSystem) {
            appStore.setDarkMode(context.platformBrightness() == Brightness.light);
          }
        };
      }
    
      @override
      void afterFirstLayout(BuildContext context) {
        appLocale = AppLocalizations.of(context);
        appStore.setLanguage(appStore.selectedLanguageCode, context: context);
    
        if (isMobile) {
          OneSignal.shared.setNotificationOpenedHandler((OSNotificationOpenedResult notification) async {
            if (notification.notification.additionalData!.containsKey('ID')) {
              String? notId = notification.notification.additionalData!["ID"];
    
              if (notId.validate().isNotEmpty) {
                String heroTag = '$notId${currentTimeStamp()}';
    
                NewsDetailScreen(id: notId.toString(), heroTag: heroTag, disableAd: false).launch(context);
              }
            }
          });
        }
    
        if (isAndroid) {
          PackageInfo.fromPlatform().then((value) {
            checkForceUpdateForAndroid(currentVersion: value.buildNumber.toInt(), forceUpdateVersion: getIntAsync(FORCE_UPDATE_VERSION_CODE), packageName: value.packageName);
          });
        }
      }
    
      @override
      void dispose() {
        super.dispose();
        LiveStream().dispose(checkMyTopics);
        LiveStream().dispose(tokenStream);
    
        window.onPlatformBrightnessChanged = null;
      }
    
      @override
      void setState(fn) {
        if (mounted) super.setState(fn);
      }
    
      @override
      Widget build(BuildContext context) {
        return SafeArea(
          child: WillPopScope(
            onWillPop: () async {
              DateTime now = DateTime.now();
              if (currentIndex == 0) {
                if (currentBackPressTime == null || now.difference(currentBackPressTime!) > 2.seconds) {
                  currentBackPressTime = now;
                  toast(AppLocalizations.of(context)!.translate('exit_app'));
                  return Future.value(false);
                }
              } else {
                currentIndex = 0;
                setState(() {});
                return Future.value(false);
              }
              return Future.value(true);
            },
            child: Scaffold(
              body: Container(child: widgets[currentIndex]),
              bottomNavigationBar: Observer(
                builder: (_) => BottomNavigationBar(
                  currentIndex: currentIndex,
                  items: [
                    BottomNavigationBarItem(
                      icon: Icon(AntDesign.home, color: context.theme.iconTheme.color),
                      label: 'Home',
                      activeIcon: Icon(AntDesign.home, color: colorPrimary),
                    ),
                    BottomNavigationBarItem(
                      icon: Icon(Icons.dashboard_outlined, color: context.theme.iconTheme.color),
                      label: 'Suggested For You',
                      activeIcon: Icon(Icons.dashboard_outlined, color: colorPrimary),
                    ),
                    BottomNavigationBarItem(
                      icon: Icon(Icons.category_outlined, color: context.theme.iconTheme.color),
                      label: 'Category',
                      activeIcon: Icon(Icons.category_outlined, color: colorPrimary),
                    ),
                    BottomNavigationBarItem(
                      icon: Icon(Ionicons.ios_search, color: context.theme.iconTheme.color),
                      label: 'Search News',
                      activeIcon: Icon(Ionicons.ios_search, color: colorPrimary),
                    ),
                    BottomNavigationBarItem(
                      icon: appStore.isLoggedIn
                          ? cachedImage(appStore.userProfileImage, height: 24, width: 24, fit: BoxFit.cover).cornerRadiusWithClipRRect(15)
                          : Icon(MaterialIcons.person_outline, color: context.theme.iconTheme.color),
                      label: 'Profile',
                      activeIcon: appStore.isLoggedIn
                          ? Container(
                              decoration: BoxDecoration(border: Border.all(color: colorPrimary), shape: BoxShape.circle),
                              child: cachedImage(
                                appStore.userProfileImage,
                                height: 24,
                                width: 24,
                                fit: BoxFit.cover,
                              ).cornerRadiusWithClipRRect(15))
                          : Icon(MaterialIcons.person_outline, color: colorPrimary),
                    ),
                  ],
                  type: BottomNavigationBarType.fixed,
                  showUnselectedLabels: false,
                  showSelectedLabels: false,
                  onTap: (i) async {
                    if (i == 1) {
                      if (!appStore.isLoggedIn) {
                        LoginScreen().launch(context);
                      } else if (appStore.myTopics.isEmpty && i == 1) {
                        await ChooseTopicScreen().launch(context);
    
                        if (appStore.myTopics.isNotEmpty) {
                          currentIndex = 1;
                        }
                      } else {
                        currentIndex = i;
                      }
                    } else {
                      currentIndex = i;
                    }
    
                    setState(() {});
                  },
                ),
              ),
            ),
          ),
        );
      }
    }
    pubspec.lock
    # Generated by pub
    # See https://dart.dev/tools/pub/glossary#lockfile
    packages:
      _fe_analyzer_shared:
        dependency: transitive
        description:
          name: _fe_analyzer_shared
          url: "https://pub.dartlang.org"
        source: hosted
        version: "30.0.0"
      analyzer:
        dependency: transitive
        description:
          name: analyzer
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.7.0"
      args:
        dependency: transitive
        description:
          name: args
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.3.0"
      async:
        dependency: transitive
        description:
          name: async
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.8.1"
      boolean_selector:
        dependency: transitive
        description:
          name: boolean_selector
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.0"
      build:
        dependency: transitive
        description:
          name: build
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.1"
      build_config:
        dependency: transitive
        description:
          name: build_config
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.0"
      build_daemon:
        dependency: transitive
        description:
          name: build_daemon
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.0.1"
      build_resolvers:
        dependency: transitive
        description:
          name: build_resolvers
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.4"
      build_runner:
        dependency: "direct dev"
        description:
          name: build_runner
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.4"
      build_runner_core:
        dependency: transitive
        description:
          name: build_runner_core
          url: "https://pub.dartlang.org"
        source: hosted
        version: "7.2.2"
      built_collection:
        dependency: transitive
        description:
          name: built_collection
          url: "https://pub.dartlang.org"
        source: hosted
        version: "5.1.1"
      built_value:
        dependency: transitive
        description:
          name: built_value
          url: "https://pub.dartlang.org"
        source: hosted
        version: "8.1.3"
      cached_network_image:
        dependency: "direct main"
        description:
          name: cached_network_image
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.1.0"
      cached_network_image_platform_interface:
        dependency: transitive
        description:
          name: cached_network_image_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.0"
      cached_network_image_web:
        dependency: transitive
        description:
          name: cached_network_image_web
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.1"
      characters:
        dependency: transitive
        description:
          name: characters
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.0"
      charcode:
        dependency: transitive
        description:
          name: charcode
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.3.1"
      checked_yaml:
        dependency: transitive
        description:
          name: checked_yaml
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.1"
      chewie:
        dependency: transitive
        description:
          name: chewie
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.2.2"
      chewie_audio:
        dependency: transitive
        description:
          name: chewie_audio
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.2.0"
      cli_util:
        dependency: transitive
        description:
          name: cli_util
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.3.5"
      clippy_flutter:
        dependency: "direct main"
        description:
          name: clippy_flutter
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.0-nullsafety.1"
      clock:
        dependency: transitive
        description:
          name: clock
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.0"
      code_builder:
        dependency: transitive
        description:
          name: code_builder
          url: "https://pub.dartlang.org"
        source: hosted
        version: "4.1.0"
      collection:
        dependency: transitive
        description:
          name: collection
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.15.0"
      connectivity_plus:
        dependency: transitive
        description:
          name: connectivity_plus
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      connectivity_plus_linux:
        dependency: transitive
        description:
          name: connectivity_plus_linux
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.0"
      connectivity_plus_macos:
        dependency: transitive
        description:
          name: connectivity_plus_macos
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.2.1"
      connectivity_plus_platform_interface:
        dependency: transitive
        description:
          name: connectivity_plus_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.0"
      connectivity_plus_web:
        dependency: transitive
        description:
          name: connectivity_plus_web
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.0+1"
      connectivity_plus_windows:
        dependency: transitive
        description:
          name: connectivity_plus_windows
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.2.0"
      convert:
        dependency: transitive
        description:
          name: convert
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.0.1"
      country_code_picker:
        dependency: "direct main"
        description:
          name: country_code_picker
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      cross_file:
        dependency: transitive
        description:
          name: cross_file
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.3.2"
      crypto:
        dependency: transitive
        description:
          name: crypto
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.0.1"
      csslib:
        dependency: transitive
        description:
          name: csslib
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.17.1"
      cupertino_icons:
        dependency: "direct main"
        description:
          name: cupertino_icons
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.3"
      dart_style:
        dependency: transitive
        description:
          name: dart_style
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.2.0"
      dbus:
        dependency: transitive
        description:
          name: dbus
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.5.6"
      fading_edge_scrollview:
        dependency: "direct main"
        description:
          name: fading_edge_scrollview
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.1"
      fake_async:
        dependency: transitive
        description:
          name: fake_async
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.2.0"
      ffi:
        dependency: transitive
        description:
          name: ffi
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.2"
      file:
        dependency: transitive
        description:
          name: file
          url: "https://pub.dartlang.org"
        source: hosted
        version: "6.1.2"
      firebase_auth:
        dependency: "direct main"
        description:
          name: firebase_auth
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.1.4"
      firebase_auth_platform_interface:
        dependency: transitive
        description:
          name: firebase_auth_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "6.1.2"
      firebase_auth_web:
        dependency: transitive
        description:
          name: firebase_auth_web
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.1.3"
      firebase_core:
        dependency: "direct main"
        description:
          name: firebase_core
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.8.0"
      firebase_core_platform_interface:
        dependency: transitive
        description:
          name: firebase_core_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "4.0.1"
      firebase_core_web:
        dependency: transitive
        description:
          name: firebase_core_web
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.0"
      firebase_crashlytics:
        dependency: "direct main"
        description:
          name: firebase_crashlytics
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.2.4"
      firebase_crashlytics_platform_interface:
        dependency: transitive
        description:
          name: firebase_crashlytics_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.1.4"
      firebase_remote_config:
        dependency: "direct main"
        description:
          name: firebase_remote_config
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.11.0+2"
      firebase_remote_config_platform_interface:
        dependency: transitive
        description:
          name: firebase_remote_config_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.3.0+7"
      fixnum:
        dependency: transitive
        description:
          name: fixnum
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.0"
      flutter:
        dependency: "direct main"
        description: flutter
        source: sdk
        version: "0.0.0"
      flutter_blurhash:
        dependency: transitive
        description:
          name: flutter_blurhash
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.6.0"
      flutter_cache_manager:
        dependency: transitive
        description:
          name: flutter_cache_manager
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.1.2"
      flutter_html:
        dependency: "direct main"
        description:
          name: flutter_html
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.5"
      flutter_layout_grid:
        dependency: transitive
        description:
          name: flutter_layout_grid
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.3"
      flutter_localizations:
        dependency: "direct main"
        description: flutter
        source: sdk
        version: "0.0.0"
      flutter_math_fork:
        dependency: transitive
        description:
          name: flutter_math_fork
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.3.3+1"
      flutter_mobx:
        dependency: "direct main"
        description:
          name: flutter_mobx
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      flutter_plugin_android_lifecycle:
        dependency: transitive
        description:
          name: flutter_plugin_android_lifecycle
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.4"
      flutter_svg:
        dependency: transitive
        description:
          name: flutter_svg
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.22.0"
      flutter_test:
        dependency: "direct dev"
        description: flutter
        source: sdk
        version: "0.0.0"
      flutter_tts:
        dependency: "direct main"
        description:
          name: flutter_tts
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.2.2"
      flutter_vector_icons:
        dependency: "direct main"
        description:
          name: flutter_vector_icons
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.0"
      flutter_web_plugins:
        dependency: transitive
        description: flutter
        source: sdk
        version: "0.0.0"
      fluttertoast:
        dependency: transitive
        description:
          name: fluttertoast
          url: "https://pub.dartlang.org"
        source: hosted
        version: "8.0.8"
      frontend_server_client:
        dependency: transitive
        description:
          name: frontend_server_client
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.2"
      geolocator:
        dependency: "direct main"
        description:
          name: geolocator
          url: "https://pub.dartlang.org"
        source: hosted
        version: "7.7.1"
      geolocator_android:
        dependency: transitive
        description:
          name: geolocator_android
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.0"
      geolocator_apple:
        dependency: transitive
        description:
          name: geolocator_apple
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.2.2"
      geolocator_platform_interface:
        dependency: transitive
        description:
          name: geolocator_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.3.6"
      geolocator_web:
        dependency: transitive
        description:
          name: geolocator_web
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.6"
      glob:
        dependency: transitive
        description:
          name: glob
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      google_fonts:
        dependency: "direct main"
        description:
          name: google_fonts
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.0"
      google_mobile_ads:
        dependency: "direct main"
        description:
          name: google_mobile_ads
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.13.5"
      google_sign_in:
        dependency: "direct main"
        description:
          name: google_sign_in
          url: "https://pub.dartlang.org"
        source: hosted
        version: "5.2.1"
      google_sign_in_platform_interface:
        dependency: transitive
        description:
          name: google_sign_in_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.0"
      google_sign_in_web:
        dependency: transitive
        description:
          name: google_sign_in_web
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.10.0+3"
      graphs:
        dependency: transitive
        description:
          name: graphs
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.0"
      html:
        dependency: "direct main"
        description:
          name: html
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.15.0"
      http:
        dependency: "direct main"
        description:
          name: http
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.13.4"
      http_multi_server:
        dependency: transitive
        description:
          name: http_multi_server
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.0.1"
      http_parser:
        dependency: transitive
        description:
          name: http_parser
          url: "https://pub.dartlang.org"
        source: hosted
        version: "4.0.0"
      image_picker:
        dependency: "direct main"
        description:
          name: image_picker
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.8.4+4"
      image_picker_for_web:
        dependency: transitive
        description:
          name: image_picker_for_web
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.4"
      image_picker_platform_interface:
        dependency: transitive
        description:
          name: image_picker_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.4.1"
      intl:
        dependency: "direct main"
        description:
          name: intl
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.17.0"
      io:
        dependency: transitive
        description:
          name: io
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.3"
      js:
        dependency: transitive
        description:
          name: js
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.6.3"
      json_annotation:
        dependency: transitive
        description:
          name: json_annotation
          url: "https://pub.dartlang.org"
        source: hosted
        version: "4.3.0"
      logging:
        dependency: transitive
        description:
          name: logging
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.2"
      matcher:
        dependency: transitive
        description:
          name: matcher
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.12.10"
      meta:
        dependency: transitive
        description:
          name: meta
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.7.0"
      mime:
        dependency: transitive
        description:
          name: mime
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.1"
      mobx:
        dependency: "direct main"
        description:
          name: mobx
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.5"
      mobx_codegen:
        dependency: "direct dev"
        description:
          name: mobx_codegen
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.4"
      modal_bottom_sheet:
        dependency: transitive
        description:
          name: modal_bottom_sheet
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.0"
      native_ads:
        dependency: "direct main"
        description:
          name: native_ads
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.5.0"
      nb_utils:
        dependency: "direct main"
        description:
          name: nb_utils
          url: "https://pub.dartlang.org"
        source: hosted
        version: "4.4.10"
      nested:
        dependency: transitive
        description:
          name: nested
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.0"
      nm:
        dependency: transitive
        description:
          name: nm
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.3.0"
      numerus:
        dependency: transitive
        description:
          name: numerus
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.1"
      octo_image:
        dependency: transitive
        description:
          name: octo_image
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.0+1"
      onesignal_flutter:
        dependency: "direct main"
        description:
          name: onesignal_flutter
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.2.4"
      otp_text_field:
        dependency: "direct main"
        description:
          name: otp_text_field
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.1"
      package_config:
        dependency: transitive
        description:
          name: package_config
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      package_info:
        dependency: "direct main"
        description:
          name: package_info
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      path:
        dependency: transitive
        description:
          name: path
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.8.0"
      path_drawing:
        dependency: transitive
        description:
          name: path_drawing
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.5.1+1"
      path_parsing:
        dependency: transitive
        description:
          name: path_parsing
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.2.1"
      path_provider:
        dependency: transitive
        description:
          name: path_provider
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.6"
      path_provider_linux:
        dependency: transitive
        description:
          name: path_provider_linux
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.0"
      path_provider_macos:
        dependency: transitive
        description:
          name: path_provider_macos
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      path_provider_platform_interface:
        dependency: transitive
        description:
          name: path_provider_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.1"
      path_provider_windows:
        dependency: transitive
        description:
          name: path_provider_windows
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.3"
      pedantic:
        dependency: transitive
        description:
          name: pedantic
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.11.1"
      petitparser:
        dependency: transitive
        description:
          name: petitparser
          url: "https://pub.dartlang.org"
        source: hosted
        version: "4.4.0"
      photo_view:
        dependency: "direct main"
        description:
          name: photo_view
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.12.0"
      platform:
        dependency: transitive
        description:
          name: platform
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.0.2"
      plugin_platform_interface:
        dependency: transitive
        description:
          name: plugin_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      pool:
        dependency: transitive
        description:
          name: pool
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.5.0"
      process:
        dependency: transitive
        description:
          name: process
          url: "https://pub.dartlang.org"
        source: hosted
        version: "4.2.4"
      provider:
        dependency: transitive
        description:
          name: provider
          url: "https://pub.dartlang.org"
        source: hosted
        version: "5.0.0"
      pub_semver:
        dependency: transitive
        description:
          name: pub_semver
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.0"
      pubspec_parse:
        dependency: transitive
        description:
          name: pubspec_parse
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.0"
      quiver:
        dependency: transitive
        description:
          name: quiver
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.0.1+1"
      rive:
        dependency: "direct main"
        description:
          name: rive
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.7.33"
      rxdart:
        dependency: transitive
        description:
          name: rxdart
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.26.0"
      share:
        dependency: "direct main"
        description:
          name: share
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.4"
      shared_preferences:
        dependency: transitive
        description:
          name: shared_preferences
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.8"
      shared_preferences_linux:
        dependency: transitive
        description:
          name: shared_preferences_linux
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      shared_preferences_macos:
        dependency: transitive
        description:
          name: shared_preferences_macos
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      shared_preferences_platform_interface:
        dependency: transitive
        description:
          name: shared_preferences_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.0"
      shared_preferences_web:
        dependency: transitive
        description:
          name: shared_preferences_web
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      shared_preferences_windows:
        dependency: transitive
        description:
          name: shared_preferences_windows
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      shelf:
        dependency: transitive
        description:
          name: shelf
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.2.0"
      shelf_web_socket:
        dependency: transitive
        description:
          name: shelf_web_socket
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.1"
      shimmer:
        dependency: "direct main"
        description:
          name: shimmer
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.0"
      sky_engine:
        dependency: transitive
        description: flutter
        source: sdk
        version: "0.0.99"
      source_gen:
        dependency: transitive
        description:
          name: source_gen
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.1"
      source_span:
        dependency: transitive
        description:
          name: source_span
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.8.1"
      sqflite:
        dependency: transitive
        description:
          name: sqflite
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.0+4"
      sqflite_common:
        dependency: transitive
        description:
          name: sqflite_common
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.1+1"
      stack_trace:
        dependency: transitive
        description:
          name: stack_trace
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.10.0"
      story_view:
        dependency: "direct main"
        description:
          name: story_view
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.13.1"
      stream_channel:
        dependency: transitive
        description:
          name: stream_channel
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.0"
      stream_transform:
        dependency: transitive
        description:
          name: stream_transform
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.0"
      string_scanner:
        dependency: transitive
        description:
          name: string_scanner
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.0"
      synchronized:
        dependency: transitive
        description:
          name: synchronized
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.0.0"
      term_glyph:
        dependency: transitive
        description:
          name: term_glyph
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.2.0"
      test_api:
        dependency: transitive
        description:
          name: test_api
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.4.2"
      the_apple_sign_in:
        dependency: "direct main"
        description:
          name: the_apple_sign_in
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.1.1"
      timing:
        dependency: transitive
        description:
          name: timing
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.0"
      tuple:
        dependency: transitive
        description:
          name: tuple
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.0"
      typed_data:
        dependency: transitive
        description:
          name: typed_data
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.3.0"
      universal_platform:
        dependency: transitive
        description:
          name: universal_platform
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.0+1"
      url_launcher:
        dependency: "direct main"
        description:
          name: url_launcher
          url: "https://pub.dartlang.org"
        source: hosted
        version: "6.0.12"
      url_launcher_linux:
        dependency: transitive
        description:
          name: url_launcher_linux
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      url_launcher_macos:
        dependency: transitive
        description:
          name: url_launcher_macos
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      url_launcher_platform_interface:
        dependency: transitive
        description:
          name: url_launcher_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.4"
      url_launcher_web:
        dependency: transitive
        description:
          name: url_launcher_web
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.4"
      url_launcher_windows:
        dependency: transitive
        description:
          name: url_launcher_windows
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.2"
      uuid:
        dependency: transitive
        description:
          name: uuid
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.0.5"
      vector_math:
        dependency: transitive
        description:
          name: vector_math
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.0"
      video_player:
        dependency: "direct main"
        description:
          name: video_player
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.2.6"
      video_player_platform_interface:
        dependency: transitive
        description:
          name: video_player_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "4.2.0"
      video_player_web:
        dependency: transitive
        description:
          name: video_player_web
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.0.4"
      wakelock:
        dependency: transitive
        description:
          name: wakelock
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.5.6"
      wakelock_macos:
        dependency: transitive
        description:
          name: wakelock_macos
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.4.0"
      wakelock_platform_interface:
        dependency: transitive
        description:
          name: wakelock_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.3.0"
      wakelock_web:
        dependency: transitive
        description:
          name: wakelock_web
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.4.0"
      wakelock_windows:
        dependency: transitive
        description:
          name: wakelock_windows
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.2.0"
      watcher:
        dependency: transitive
        description:
          name: watcher
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.0.1"
      web_socket_channel:
        dependency: transitive
        description:
          name: web_socket_channel
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.0"
      webview_flutter:
        dependency: transitive
        description:
          name: webview_flutter
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.2"
      webview_flutter_android:
        dependency: transitive
        description:
          name: webview_flutter_android
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.0"
      webview_flutter_platform_interface:
        dependency: transitive
        description:
          name: webview_flutter_platform_interface
          url: "https://pub.dartlang.org"
        source: hosted
        version: "1.2.0"
      webview_flutter_wkwebview:
        dependency: transitive
        description:
          name: webview_flutter_wkwebview
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.1.0"
      win32:
        dependency: transitive
        description:
          name: win32
          url: "https://pub.dartlang.org"
        source: hosted
        version: "2.2.10"
      xdg_directories:
        dependency: transitive
        description:
          name: xdg_directories
          url: "https://pub.dartlang.org"
        source: hosted
        version: "0.2.0"
      xml:
        dependency: transitive
        description:
          name: xml
          url: "https://pub.dartlang.org"
        source: hosted
        version: "5.3.1"
      yaml:
        dependency: transitive
        description:
          name: yaml
          url: "https://pub.dartlang.org"
        source: hosted
        version: "3.1.0"
    sdks:
      dart: ">=2.14.0 <3.0.0"
      flutter: ">=2.5.0"
    AppStore.dart
    import 'package:flutter/material.dart';
    import 'package:flutter/services.dart';
    import 'package:goksoy_medya/utils/Colors.dart';
    import 'package:goksoy_medya/utils/Common.dart';
    import 'package:goksoy_medya/utils/Constants.dart';
    import 'package:mobx/mobx.dart';
    import 'package:nb_utils/nb_utils.dart';
    import 'package:onesignal_flutter/onesignal_flutter.dart';
    
    import '../AppLocalizations.dart';
    import '../main.dart';
    
    part 'AppStore.g.dart';
    
    class AppStore = _AppStore with _$AppStore;
    
    abstract class _AppStore with Store {
      @observable
      bool isLoggedIn = false;
    
      @observable
      bool isNotificationOn = true;
    
      @observable
      bool isDarkMode = false;
    
      @observable
      bool isLoading = false;
    
      @observable
      String selectedLanguageCode = defaultLanguage;
    
      @observable
      String? userProfileImage = '';
    
      @observable
      String? userFirstName = '';
    
      @observable
      String? userLastName = '';
    
      @observable
      String? userEmail = '';
    
      @observable
      int? userId = -1;
    
      @observable
      List<int?> myTopics = [];
    
      @observable
      String languageForTTS = '';
    
      @observable
      AppBarTheme appBarTheme = AppBarTheme();
    
      @action
      void setTTSLanguage(String lang) {
        languageForTTS = lang;
        setValue(TEXT_TO_SPEECH_LANG, lang);
      }
    
      @action
      void setMyTopics(List<int> val) {
        myTopics.clear();
        myTopics.addAll(val);
      }
    
      @action
      void addToMyTopics(int? val) {
        myTopics.add(val);
      }
    
      @action
      void removeFromMyTopics(int? val) {
        myTopics.remove(val);
      }
    
      @action
      void setUserProfile(String? image) {
        userProfileImage = image;
      }
    
      @action
      void setUserId(int? val) {
        userId = val;
      }
    
      @action
      void setUserEmail(String? email) {
        userEmail = email;
      }
    
      @action
      void setFirstName(String? name) {
        userFirstName = name;
      }
    
      @action
      void setLastName(String? name) {
        userLastName = name;
      }
    
      @action
      Future<void> setLoggedIn(bool val) async {
        isLoggedIn = val;
        await setValue(IS_LOGGED_IN, val);
      }
    
      @action
      void setLoading(bool val) {
        isLoading = val;
      }
    
      @action
      void setNotification(bool val) {
        isNotificationOn = val;
    
        setValue(IS_NOTIFICATION_ON, val);
    
        if (isMobile) {
          OneSignal.shared.disablePush(!val);
        }
      }
    
      @action
      Future<void> setDarkMode(bool aIsDarkMode) async {
        isDarkMode = aIsDarkMode;
    
        if (isDarkMode) {
          textPrimaryColorGlobal = Colors.white;
          textSecondaryColorGlobal = textSecondaryColor;
    
          defaultLoaderBgColorGlobal = scaffoldSecondaryDark;
          appButtonBackgroundColorGlobal = appButtonColorDark;
          shadowColorGlobal = Colors.white12;
        } else {
          textPrimaryColorGlobal = textPrimaryColor;
          textSecondaryColorGlobal = textSecondaryColor;
    
          defaultLoaderBgColorGlobal = Colors.white;
          appButtonBackgroundColorGlobal = Colors.white;
          shadowColorGlobal = Colors.black12;
        }
    
        appBarTheme = AppBarTheme(
          brightness: getSystemBrightness(),
          systemOverlayStyle: SystemUiOverlayStyle(statusBarIconBrightness: getSystemIconBrightness()),
        );
    
        setDynamicStatusBarColor();
      }
    
      @action
      Future<void> setLanguage(String aSelectedLanguageCode, {BuildContext? context}) async {
        selectedLanguageCode = aSelectedLanguageCode;
    
        language = languages.firstWhere((element) => element.languageCode == aSelectedLanguageCode);
        await setValue(LANGUAGE, aSelectedLanguageCode);
    
        if (context != null) {
          appLocale = AppLocalizations.of(context);
          errorThisFieldRequired = appLocale!.translate('field_Required');
        }
      }
    }
  • 04-11-2021, 11:56:36
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Firebase Cloud Messaging Denediniz mi Hem Ücretsiz Hemde Stabil...
  • 04-11-2021, 12:02:15
    #3
    osmnkrs adlı üyeden alıntı: mesajı görüntüle
    Firebase Cloud Messaging Denediniz mi Hem Ücretsiz Hemde Stabil...
    Hocam uygulamam haber uygulaması firebase'de link yani direk konuyu bildirim atmayı başarım o yüzden onesignal kullanıyorum