Flutter嵌入式SIM管理工具插件esim_toolkit的使用

Flutter嵌入式SIM管理工具插件esim_toolkit的使用

Flutter嵌入式SIM管理工具插件esim_toolkit的使用

Flutter eSIM 插件

一个用于检查设备是否支持eSIM并直接在应用程序中安装eSIM配置文件的Flutter插件。

目录

开始使用

安装

使用

示例

API 参考

贡献

许可证

开始使用

要使用此插件,请在 pubspec.yaml 文件中添加 esim_toolkit 作为依赖项:

dependencies:

esim_toolkit: ^latest_version

然后运行以下命令以获取依赖项:

flutter pub get

安装

确保根据您的项目平台进行必要的设置:

Android: 不需要额外设置。

iOS: 不需要额外设置。

使用

在Dart文件中导入库:

import 'package:esim_toolkit/esim_toolkit.dart';

现在您可以使用 EsimToolkit 类来检查设备是否支持eSIM并安装eSIM配置文件。

// 检查设备是否支持eSIM

// 不需要请求Apple的权限批准(手动检查)

bool isEsimSupported = await EsimToolkit.isEsimSupported();

// 检查设备是否支持eSIM

// 不需要请求Apple的权限批准(手动检查)

// 您可以添加一些尚未上市的新设备进行检查

List newer = ['iPhone18,4', 'iPhone19,4'];

bool isEsimSupported = await EsimToolkit.isEsimSupported(newer);

// 安装eSIM配置文件

// 需要请求Apple的权限批准

bool installedSuccessfully = await EsimToolkit.installEsimProfile(profileData);

// 获取eSIM设置步骤的文本说明

bool textInstructions = await EsimToolkit.instructions();

iOS 的 eSIM 集成指南

兼容性检查

您可以通过以下步骤将eSIM功能集成到您的iOS应用中。请注意,此过程涉及从Apple请求权限批准。

步骤

第一步:请求eSIM权限

使用您的开发者帐户,通过Apple开发者门户提交eSIM权限请求。

第二步:审批流程

Apple将审核并批准权限请求。您可以在应用的配置设置中查看审批状态。

第三步:下载配置文件

下载开发和分发配置文件。确保在配置文件设置中选择了eSIM权限。

第四步:更新Info.plist

在您的 Info.plist 文件中添加以下键值对:

CarrierDescriptors

GID1

***

GID2

***

MCC

***

MNC

***

注意:可以从以下来源获取GID1、GID2、MCC和MNC信息以实现eSIM兼容性:

移动网络运营商:联系您的移动网络运营商以获取特定的eSIM卡详细信息。

在线eSIM提供商:许多提供商如Truphone、Twilio和Unlocator在其网站上发布此类信息。

设备制造商:一些制造商如Apple和Samsung在其网站或用户手册中提供详细信息。

eSIM数据库:像esimdb.com这样的网站提供了有关eSIM卡及其关联代码的信息。

重要的是要注意,eSIM兼容性可能因移动网络运营商和设备而异。因此,请始终参考具体的提供商或制造商以获取准确和最新的信息。

有关更多详细信息,请参阅API参考部分。

示例

查看 example 目录下的简单Flutter应用程序,演示了如何使用该插件。

贡献

欢迎为本项目做出贡献!

许可证

该项目基于 MIT 许可证 授权。

示例代码

以下是完整的示例代码,展示如何使用 esim_toolkit 插件:

import 'package:flutter/material.dart';

import 'dart:async';

import 'package:flutter/services.dart';

import 'package:esim_toolkit/esim_toolkit.dart';

void main() {

runApp(const MyApp());

}

class MyApp extends StatefulWidget {

const MyApp({super.key});

[@override](/user/override)

State createState() => _MyAppState();

}

class _MyAppState extends State {

bool _isSupportESim = false;

final esimToolkitPlugin = EsimToolkit();

[@override](/user/override)

void initState() {

super.initState();

initPlatformState();

esimToolkitPlugin.onEvent.listen((event) {

debugPrint(event);

});

}

// 平台消息是异步的,因此我们初始化在一个异步方法中。

Future initPlatformState() async {

bool isSupportESim;

// 平台消息可能会失败,所以我们使用try/catch捕获PlatformException。

// 我们还处理消息可能返回null的情况。

try {

List newer = ["iPhone17,4"];

isSupportESim = await esimToolkitPlugin.isSupportESim(newer);

} on PlatformException {

isSupportESim = false;

}

// 如果小部件在异步平台消息完成之前从树中移除,则我们希望丢弃回复而不是调用setState来更新我们的不存在的外观。

if (!mounted) return;

setState(() {

_isSupportESim = isSupportESim;

});

}

Future installEsim() async {

await esimToolkitPlugin.installEsimProfile("LPA:1\$lpa.airalo.com\$TEST");

}

[@override](/user/override)

Widget build(BuildContext context) {

return MaterialApp(

home: Scaffold(

appBar: AppBar(

title: const Text('Plugin example app'),

),

body: Center(

child: Column(

children: [

Text('isSupportESim: $_isSupportESim\n'),

ElevatedButton(

onPressed: () {

installEsim();

},

child: const Text('Install eSim'),

)

],

),

),

),

);

}

}

相关文章

2024年中国网吧行业现状:随着电竞娱乐需求的增加,网吧市场规模将逐渐扩大
200首两个字的歌 我们一起听【持续更新中】
best365官网登录

200首两个字的歌 我们一起听【持续更新中】

📅 07-28 👁️ 1441
在 Windows 中配置屏幕保护程序
365平台是什么

在 Windows 中配置屏幕保护程序

📅 09-04 👁️ 7024