Untitled

 avatar
unknown
plain_text
2 years ago
5.0 kB
4
Indexable
/*
 *  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 *  Copyright (C) 2019 Rich Design - All Rights Reserved
 *  Unauthorized copying of this file, via any medium is strictly prohibited
 *  Proprietary and confidential.
 *
 *  Written by Rich Design <info@designsrich.com>, August 2019
 *
 */

import 'dart:async';
import 'dart:io';

import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import 'package:flutter_webview_pro/webview_flutter.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:webview_cookie_manager/webview_cookie_manager.dart';

import 'main.dart';

class HomePageFullState extends StatefulWidget {
  @override
  _HomePageFullStateState createState() => _HomePageFullStateState();
}

const kAndroidUserAgent =
    'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Mobile Safari/537.36';


class _HomePageFullStateState extends State<HomePageFullState> {

  WebViewController webViewController;
  String selectedUrl = 'https://mobil.bakneyaptik.com/home.html';
  final Completer<WebViewController> _controller = Completer<WebViewController>();
// ignore: prefer_collection_literals
  final Set<JavascriptChannel> jsChannels = [
    JavascriptChannel(
        name: 'Print',
        onMessageReceived: (JavascriptMessage message) {
          print(message.message);
        }),
  ].toSet();
  final cookieManager = WebviewCookieManager();

  @override
  void initState() {
    super.initState();
    if (Platform.isAndroid) WebView.platform = AndroidWebView();
  }

  @override
  void dispose() {
    super.dispose();
  }

  Future<void> _handleBack() async {
    var status = await webViewController.canGoBack();
    if (status) {
      webViewController.goBack();
    }
  }


  @override
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: () => _handleBack(),
      child: SafeArea(
        child: Container(
          decoration: new BoxDecoration(color: Colors.white),
          child: WebView(
            javascriptMode: JavascriptMode.unrestricted,
            javascriptChannels: jsChannels,
            initialUrl: selectedUrl,
            onProgress: (test){
              print('GELENN -- ${test}');
              run();
            },
            onWebViewCreated: (WebViewController webViewController2) {
              webViewController = webViewController2;
              _controller.complete(webViewController2);
            },
          ),
        ),
      ),
    );
  }


  Future<void> cameraStorageRequestPermission() async {
    SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
    if(!sharedPreferences.containsKey("permissionStorage")){
      PermissionStatus permissionData = await Permission.storage.request();
      await Permission.camera.request();
      if(permissionData.isGranted){
        sharedPreferences.setString("permissionStorage", "yes");
      }
    }
  }


  Future run() async {
    bool statusLogin = false;
    String userId ="";
    try{
      final gotCookies = await cookieManager.getCookies('https://mobil.bakneyaptik.com');
      for (var item in gotCookies) {
        if(item.name.compareTo("userId")==0){
          statusLogin = true;
          userId = item.value;
        }
        print("**** --- - ********* Name: ${item.name} -- Value: ${item.value}");
      }
      if(statusLogin){
        print('EVET LOGIN OLUNMUŞŞŞŞŞŞŞŞŞ');
        print('gelen user ** ${userId}');
        if(!loginUserController){
          SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
          sharedPreferences.setString("username", userId);
          FirebaseMessaging.instance.subscribeToTopic(userId);
          loginUserController = true;
          cameraStorageRequestPermission();
          print('LOGİN OLDUM KANALA ABONEEE');
        }
      }else{
        SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
        try{
          if (sharedPreferences.containsKey("username")) {
            String getUserName = sharedPreferences.getString("username");
            FirebaseMessaging.instance.unsubscribeFromTopic(getUserName);
            sharedPreferences.remove("username");
            print('ÇIKIŞ YAPTIM ABONELİK YOKKKK');
            loginUserController = false;
          }
        }catch(e){
          String getUserName = sharedPreferences.getString("username");
          FirebaseMessaging.instance.unsubscribeFromTopic(getUserName);
          sharedPreferences.remove("username");
          loginUserController = false;
        }
        print('HAYIR LOGIN OLMAMIŞ BU ADAMMM');
      }
    }catch(e){

    }
  }

}

Editor is loading...