Я разрабатываю одно приложение, которое будет доступно с необходимыми изменениями нескольким компаниям. Я хотел бы убедиться, что при каждом запуске приложение проверяет, активна ли лицензия для этой компании. Если он активен, запускается домашний экран, в противном случае перейдите на другую информационную страницу или перестаньте работать. Поэтому я хочу иметь возможность удаленно отключить приложение.
Вот файл json, который я сделал для этой задачи (license.json):
{
"company": [
{
"id": 1,
"name": "Company 1",
"license": "active"
},
{
"id": 2,
"name": "Company 2",
"license": "expired"
}
]
}
Я уже загрузилjson файл на удаленный сервер, и у меня есть вопросы:
- Как прочитать и отфильтровать удаленный файл json, чтобы увидеть, активна ли лицензия этой компании или истекла?
- Какчтобы убедиться, что если срок действия лицензии истек, мое приложение закрылось или открылась информационная страница?
Это код, который я написал (если он может быть полезен), но я не уверен, что нахожусь направильный путь ..
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');
}
}