当然,下面是一个使用 base64_url_safe_uuid
插件在 Flutter 中生成安全 URL Base64 编码 UUID 的代码示例。这个插件允许你生成符合 URL 安全标准的 Base64 编码的 UUID。
首先,你需要在 pubspec.yaml
文件中添加 base64_url_safe_uuid
依赖:
dependencies:
flutter:
sdk: flutter
base64_url_safe_uuid: ^2.0.0 # 请检查最新版本号
然后运行 flutter pub get
来获取依赖。
接下来,在你的 Dart 文件中使用这个插件:
import 'package:flutter/material.dart';
import 'package:base64_url_safe_uuid/base64_url_safe_uuid.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Base64 URL Safe UUID Generator'),
),
body: Center(
child: FutureBuilder<String>(
future: generateBase64UrlSafeUuid(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
} else {
return Text('Base64 URL Safe UUID: ${snapshot.data}');
}
} else {
return CircularProgressIndicator();
}
},
),
),
),
);
}
}
Future<String> generateBase64UrlSafeUuid() async {
final uuid = Uuid(); // Create an instance of Uuid
final uuidString = uuid.v4(); // Generate a version 4 UUID
final base64UrlSafeUuid = uuidStringToBase64UrlSafe(uuidString); // Convert UUID to Base64 URL safe string
return base64UrlSafeUuid;
}
// Helper function to convert UUID string to Base64 URL safe string
String uuidStringToBase64UrlSafe(String uuid) {
// Convert UUID string to bytes
List<int> uuidBytes = utf8.encode(uuid.replaceAll('-', ''));
// Encode bytes to Base64 URL safe string
return base64Url.encode(uuidBytes);
}
注意:上面的代码示例中包含了一个辅助函数 uuidStringToBase64UrlSafe
,但实际上 base64_url_safe_uuid
插件已经封装好了生成 UUID 并转换为 Base64 URL 安全字符串的功能。因此,我们实际上不需要自己手动转换。以下是简化后的代码,直接使用插件提供的功能:
import 'package:flutter/material.dart';
import 'package:base64_url_safe_uuid/base64_url_safe_uuid.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Base64 URL Safe UUID Generator'),
),
body: Center(
child: FutureBuilder<String>(
future: Base64UrlSafeUuid().v4(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
} else {
return Text('Base64 URL Safe UUID: ${snapshot.data}');
}
} else {
return CircularProgressIndicator();
}
},
),
),
),
);
}
}
在这个简化的版本中,我们直接使用 Base64UrlSafeUuid().v4()
方法来生成一个 Base64 URL 安全的 UUID,而不需要手动转换。这样代码更加简洁和高效。