Удаленно отключите флаттер, отфильтровав файл лицензии json - PullRequest
0 голосов
/ 05 ноября 2019

Я разрабатываю одно приложение, которое будет доступно с необходимыми изменениями нескольким компаниям. Я хотел бы убедиться, что при каждом запуске приложение проверяет, активна ли лицензия для этой компании. Если он активен, запускается домашний экран, в противном случае перейдите на другую информационную страницу или перестаньте работать. Поэтому я хочу иметь возможность удаленно отключить приложение.

Вот файл json, который я сделал для этой задачи (license.json):

    {
    "company": [
    {
        "id": 1,
        "name": "Company 1",
        "license": "active"
    },

    {
        "id": 2,
        "name": "Company 2",
        "license": "expired"
    }
    ]
}

Я уже загрузилjson файл на удаленный сервер, и у меня есть вопросы:

  1. Как прочитать и отфильтровать удаленный файл json, чтобы увидеть, активна ли лицензия этой компании или истекла?
  2. Какчтобы убедиться, что если срок действия лицензии истек, мое приложение закрылось или открылась информационная страница?

Это код, который я написал (если он может быть полезен), но я не уверен, что нахожусь направильный путь ..

    import 'dart:async';
    import 'dart:convert';

    import 'package:flutter/material.dart';
    import 'package:http/http.dart' as http;

class Company {
      Company(String id, String name, String license);

    static Company fromJsonMap(Map<String, dynamic> json){
      String id = json['id'];
      String name = json['name'];
      String license = json['license'];

      Company s = new Company(id, name, license);
      return s;
    }

    static List<Company> fromJsonArray(String jsonString){
      Map<String, dynamic> decodedMap = jsonDecode(jsonString);
      List<dynamic> dynamicList = decodedMap['company'];
      List<Company> company= new List<Company>();
      dynamicList.forEach((f){
        Company s = Company.fromJsonMap(f);
        company.add(s);
      });

      return company;
    }

    }


    Future<Company> fetchPost() async {
      final response =
          await http.get('https://remote-path/license.json');

      if (response.statusCode == 200) {
        // If the call to the server was successful, parse the JSON.
        return Company.fromJsonMap(json.decode(response.body));
      } else {
        // If that call was not successful, throw an error.
        throw Exception('Failed to load post');
      }
    }
...