当前位置: 首页> 房产> 家装 > 自己如何做一个网络平台_海外推广平台有哪些_营销型网站seo_国际时事新闻2022最新

自己如何做一个网络平台_海外推广平台有哪些_营销型网站seo_国际时事新闻2022最新

时间:2025/7/11 13:52:18来源:https://blog.csdn.net/2501_91380052/article/details/147142730 浏览次数:0次
自己如何做一个网络平台_海外推广平台有哪些_营销型网站seo_国际时事新闻2022最新

Flutter学习之旅 之 flutter 使用 shared_preferences 实现简单的数据本地化保存封装

目录

  1. 简单介绍
  2. shared_preferences
  3. 安装 shared_preferences
  4. 简单效果
  5. 简单案例实现
  6. 关键代码

一、简单介绍

Flutter 是一款开源的 UI 软件开发工具包,由 Google 开发和维护。它允许开发者使用一套代码同时构建跨平台的应用程序,包括移动设备(iOS 和 Android)、Web 和桌面平台(Windows、macOS 和 Linux)。

Flutter 使用 Dart 编程语言,它可以将代码编译为 ARM 或 Intel 机器代码以及 JavaScript,从而实现快速的性能。Flutter 提供了一个丰富的预置小部件库,开发者可以根据自己的需求灵活地控制每个像素。

1. shared_preferences

  • 简介shared_preferences 是一个简单的键值存储解决方案,适合存储少量数据,如用户偏好设置、配置信息等。
  • 特点
    • 简单易用 :提供简单的 API,如 setStringgetInt 等,方便保存和读取数据
    • 数据类型支持 :支持常见的数据类型,如 Stringintbooldouble
    • 异步操作 :所有操作都是异步的,不会阻塞主线程
  • 适用场景 :适用于存储少量简单的键值对数据,不适合存储大量或复杂的数据

2. sqflite

  • 简介sqflite 是一个用于与 SQLite 数据库交互的 Flutter 插件,适合存储结构化数据
  • 特点
    • 结构化存储 :支持复杂的数据结构,可以存储大量数据
    • SQL 支持 :通过 SQL 语句进行数据操作,适合复杂的查询和事务处理
    • 持久化存储 :数据存储在本地数据库文件中,应用卸载后数据不会丢失
  • 适用场景 :适用于需要存储大量结构化数据的应用,如待办事项、用户信息等

3. file

  • 简介 :使用 Dart 的 File 类直接操作文件系统,适合存储自定义格式的数据
  • 特点
    • 直接操作 :可以直接读写文件,支持二进制文件和文本文件
    • 灵活性高 :可以根据需要自定义数据格式和存储逻辑
  • 适用场景 :适用于需要存储自定义格式数据(如 JSON 文件、二进制文件等)的应用

二、shared_preferences

shared_preferences 是 Flutter 中用于本地存储键值对数据的插件。它简单易用,适合存储少量数据,如用户偏好设置、配置信息等。通过 SharedPreferences.getInstance() 获取实例后,可使用 setStringsetIntsetBool 等方法保存数据,用 getStringgetIntgetBool 等方法获取数据,还可用 remove 删除指定键的数据。

对于iOS开发者,可以使用AppUploader这类工具来简化应用上传到App Store的过程,同时也能方便地管理应用的本地存储数据。

开发注意事项

  1. 异步操作shared_preferences 的操作是异步的,需要使用 awaitthen 来处理结果
  2. 类型匹配 :保存和读取数据时,要确保类型一致
  3. 初始化检查 :在使用前,需确保实例已初始化完成
  4. 错误处理 :建议添加错误处理逻辑,避免应用崩溃

使用注意事项

  1. 存储容量限制 :适合存储少量数据,不适合存储大量数据
  2. 数据安全性 :数据是明文存储的,不适合存储敏感信息
  3. 数据持久性 :存储的数据会随着应用卸载而丢失
  4. 跨平台差异 :建议在不同平台上进行充分测试

三、安装 shared_preferences

  1. 直接运行命令:
flutter pub add shared_preferences
  1. 或者在 pubspec.yaml 添加:
dependencies:shared_preferences: ^2.5.2

四、简单案例实现

  1. 创建一个 Flutter 项目
  2. 编写一个 SharedPreferencesHelper
  3. 在 main 中测试

五、关键代码

SharedPreferencesHelper

import 'package:shared_preferences/shared_preferences.dart';class SharedPreferencesHelper {static Future<void> saveData<T>(String key, T value) async {final prefs = await SharedPreferences.getInstance();if (value is String) {await prefs.setString(key, value);} else if (value is int) {await prefs.setInt(key, value);} else if (value is bool) {await prefs.setBool(key, value);} else if (value is double) {await prefs.setDouble(key, value);} else {throw Exception('Unsupported type');}}static Future<T?> getData<T>(String key) async {final prefs = await SharedPreferences.getInstance();if (T == String) {return prefs.getString(key) as T?;} else if (T == int) {return prefs.getInt(key) as T?;} else if (T == bool) {return prefs.getBool(key) as T?;} else if (T == double) {return prefs.getDouble(key) as T?;} else {throw Exception('Unsupported type');}}static Future<void> removeData(String key) async {final prefs = await SharedPreferences.getInstance();await prefs.remove(key);}static Future<bool> containsKey(String key) async {final prefs = await SharedPreferences.getInstance();return prefs.containsKey(key);}
}

main.dart

import 'package:flutter/material.dart';
import 'package:test_shared_preferences/shared_preferences_helper.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {Widget build(BuildContext context) {return MaterialApp(home: HomeScreen(),);}
}class HomeScreen extends StatefulWidget {_HomeScreenState createState() => _HomeScreenState();
}class _HomeScreenState extends State<HomeScreen> {final _controller = TextEditingController();String _savedValue = '';void initState() {super.initState();_loadSavedValue();}Future _loadSavedValue() async {final value = await SharedPreferencesHelper.getData<String>('my_key');setState(() {_savedValue = value ?? '';_controller.text = _savedValue;});}void _saveValue() async {final value = _controller.text;await SharedPreferencesHelper.saveData('my_key', value);setState(() {_savedValue = value;});}Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('SharedPreferences Example'),),body: Padding(padding: EdgeInsets.all(16.0),child: Column(children: [TextField(controller: _controller,decoration: InputDecoration(labelText: 'Enter a value'),),ElevatedButton(onPressed: _saveValue,child: Text('Save'),),Text('Saved Value: $_savedValue'),],),),);}
}

对于iOS开发者,在完成Flutter应用的开发后,可以使用AppUploader来简化应用上传到App Store的过程,同时也能方便地管理应用的本地存储数据。

关键字:自己如何做一个网络平台_海外推广平台有哪些_营销型网站seo_国际时事新闻2022最新

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: