Flutter开发工具集成插件devappsdk2的使用

Flutter开发工具集成插件devappsdk2的使用

pub package

devappsdk2 插件支持Android的内容提供器。

注意:该插件仅支持Android平台。


使用方法

要使用此插件,在您的 pubspec.yaml 文件中添加 devappsdk2 作为依赖项。

dependencies:
  devappsdk2: ^版本号

示例

AndroidManifest.xml 中添加以下内容
主机应用(提供者应用)
<manifest>
    <application>
         <provider
           android:name="com.ksaucedo.devappsdk.SharedPreferencesContentProvider"
           android:authorities="your_authority"
           android:readPermission="shared_preferences.permission.READ_DATA"
           android:writePermission="shared_preferences.permission.WRITE_DATA"
           android:enabled="true"
           android:exported="true" />
    </application>
</manifest>
消费者应用
<manifest>
    <queries>
        <package android:name="com.example.host" />  <!-- 主机应用包名 -->
    </queries>
    <uses-permission android:name="shared_preferences.permission.WRITE_DATA" />
    <uses-permission android:name="shared_preferences.permission.READ_DATA" />
</manifest>

初始化内容提供器
// 初始化内容提供器
await SharedPreferencesContentProvider.init(
    providerAuthority: 'your_authority',  // 权限提供者的 authority
);

存储值
// 存储布尔值
await SharedPreferencesContentProvider.putBool('MY_BOOL_KEY', true);

// 存储字符串
await SharedPreferencesContentProvider.putString('MY_STRING_KEY', 'STRING_VALUE');

// 存储整数
await SharedPreferencesContentProvider.putInt('MY_INT_KEY', 42);

// 存储双精度浮点数
await SharedPreferencesContentProvider.putDouble('MY_DOUBLE_KEY', 9.9);

获取值
// 获取布尔值
final bool boolValue = await SharedPreferencesContentProvider.get('MY_BOOL_KEY');

// 获取字符串
final String stringValue = await SharedPreferencesContentProvider.get('MY_STRING_KEY');

// 获取整数值
final int intValue = await SharedPreferencesContentProvider.get('MY_INT_KEY');

// 获取双精度浮点数值
final double doubleValue = await SharedPreferencesContentProvider.get('MY_DOUBLE_KEY');

或者一次性获取所有数据:

final Map<String, dynamic> data = await SharedPreferencesContentProvider.getAll();

监听值变化
// 监听特定键的值变化
SharedPreferencesContentProvider.listen((event) {
    print(event);
  }, 
  key: '123', // 如果想监听任何变化,移除这行
);

完整示例Demo

以下是完整的示例代码,展示如何在Flutter应用中使用devappsdk2插件。

example/lib/main.dart

import 'package:devappsdk2/devappsdk.dart';
import 'package:flutter/material.dart';
import 'package:kdialogs/kdialogs.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Example',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const Home(),
    );
  }
}

class Home extends StatefulWidget {
  const Home({super.key});

  [@override](/user/override)
  State<Home> createState() => _HomeState();
}

class _HomeState extends State<Home> {
  String input = "preferencias.server";
  String text = "";

  [@override](/user/override)
  void initState() {
    void read() async {
      final value = await DevAppManager().readValue("preferencias.server");
      print(value);
      final value2 = await DevAppManager().readValue("preferencias.server");
      print(value2);
    }

    WidgetsBinding.instance.addPostFrameCallback((_) async {
      read.call();
    });
    super.initState();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            SizedBox(
              width: 200,
              child: TextFormField(
                initialValue: input,
                decoration: const InputDecoration(label: Text("Name")),
                onChanged: (value) => input = value,
              ),
            ),
            IconButton(
              onPressed: () async {
                try {
                  final value = await DevAppManager().readValue("preferencias.server");
                  print(value);
                  final value2 = await DevAppManager().readValue("preferencias.server");
                  print(value2);
                  final value3 = await DevAppManager().readValue(input);
                  setState(() {
                    text = value3 ?? "not-found";
                  });
                } catch (err) {
                  if (!context.mounted) return;
                  showBottomAlertKDialog(context, message: err.toString());
                }
              },
              icon: const Icon(Icons.search),
            ),
            const SizedBox(height: 20.0),
            Text(text),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter开发工具集成插件devappsdk2的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter开发工具集成插件devappsdk2的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter项目中集成并使用devappsdk2插件,可以按照以下步骤进行。devappsdk2插件通常用于与特定的开发应用服务器进行交互,比如一些自定义的后端服务。由于devappsdk2并非Flutter官方插件库中的常见插件,以下示例将假设你已经从某个可靠的源获取了该插件,并了解其基本用法。

1. 添加插件依赖

首先,你需要在pubspec.yaml文件中添加devappsdk2插件的依赖。由于这不是一个官方插件,你可能需要使用一个自定义的源(比如Git仓库)。

dependencies:
  flutter:
    sdk: flutter
  devappsdk2:
    git:
      url: https://github.com/your-repo-url/devappsdk2.git  # 替换为实际的Git仓库URL
      ref: main  # 或者特定的分支或标签

确保替换https://github.com/your-repo-url/devappsdk2.git为实际的Git仓库URL。

2. 获取插件

运行以下命令以获取插件及其依赖项:

flutter pub get

3. 导入插件

在你需要使用devappsdk2的Dart文件中导入插件:

import 'package:devappsdk2/devappsdk2.dart';

4. 初始化插件并使用其功能

以下是一个简单的示例,展示了如何初始化devappsdk2插件并使用其提供的功能(假设插件提供了initializefetchData方法):

import 'package:flutter/material.dart';
import 'package:devappsdk2/devappsdk2.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('DevAppSDK2 Demo'),
        ),
        body: DevAppSDK2Demo(),
      ),
    );
  }
}

class DevAppSDK2Demo extends StatefulWidget {
  @override
  _DevAppSDK2DemoState createState() => _DevAppSDK2DemoState();
}

class _DevAppSDK2DemoState extends State<DevAppSDK2Demo> {
  String? dataFromServer;

  @override
  void initState() {
    super.initState();
    initializeSDK();
  }

  void initializeSDK() async {
    // 假设initialize方法用于初始化SDK连接
    try {
      await DevAppSDK2.initialize('your-api-key');  // 替换为你的API密钥
      fetchDataFromServer();
    } catch (e) {
      print('Initialization failed: $e');
    }
  }

  void fetchDataFromServer() async {
    // 假设fetchData方法用于从服务器获取数据
    try {
      var data = await DevAppSDK2.fetchData();
      setState(() {
        dataFromServer = data.toString();  // 根据实际情况处理数据
      });
    } catch (e) {
      print('Failed to fetch data: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Text('Data from Server:'),
          Text(dataFromServer ?? 'Loading...'),
        ],
      ),
    );
  }
}

注意事项

  1. API密钥:确保你替换your-api-key为实际的API密钥。
  2. 错误处理:在生产环境中,你应该添加更详细的错误处理和用户反馈。
  3. 插件方法:上述代码中的initializefetchData方法是假设存在的,你需要根据devappsdk2插件的实际API进行调整。

由于devappsdk2不是Flutter官方插件,你可能需要查阅该插件的官方文档或源代码以获取更多详细信息。

回到顶部