是否有用于检查 iPhone 中是否安装了 eSIM 的 API?
Posted
技术标签:
【中文标题】是否有用于检查 iPhone 中是否安装了 eSIM 的 API?【英文标题】:Is there API for checking if eSIM is installed in iphone? 【发布时间】:2019-04-24 15:04:18 【问题描述】:我需要检查一下,esim
是否安装在 iphone
中。
使用react-native
创建应用程序。找到react-native-carrier-info
它使用CTTelephonyNetworkInfo
和CTCarrier
CTTelephonyNetworkInfo
和CTCarrier
是否可以显示是否安装了esim
或有关此的一些信息来得出这样的结论?
在模拟器上我看不到任何信息
阅读coretelephony 但我不确定,这个任务是否有本机 api,或者哪个 api 可以帮助我做出这样的结论
【问题讨论】:
【参考方案1】:在 Swift 中,如果您想仅检查 eSim 连接,您可以:
// First, check if the currentRadioAccessTechnology is nil
// It means that no physical Sim card is inserted
let telephonyInfo = CTTelephonyNetworkInfo()
if telephonyInfo.currentRadioAccessTechnology == nil
// Next, on ios 12 only, you can check the number of services connected
// With the new serviceCurrentRadioAccessTechnology property
if #available(iOS 12, *)
if let radioTechnologies =
telephonyInfo.serviceCurrentRadioAccessTechnology, !radioTechnologies.isEmpty
// One or more radio services has been detected,
// the user has one (ore more) eSim package connected to a network
您可以在CTCellularPlanProvisioning
上使用新的supportsCellularPlan()
方法来加强检查。
【讨论】:
【参考方案2】:希望对你有帮助:
基本上你需要创建一个Library来访问Objective-C
中的原生库:
1 - npm install -g react-native-create-library
2 - react-native-create-library MyLibrary
3 - npm install
在一个新的库中,您是否实现了对本机库的访问:
#import <React/RCTBridgeModule.h>
@interface NetworkInfo : NSObject <RCTBridgeModule>
@end
实施:
// NetworkInfo.m
#import "NetworkInfo.h"
#import <React/RCTLog.h>
@implementation NetworkInfo
// To export a module named NetworkInfo
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(addEvent:(NSString *)name location:(NSString *)location)
RCTLogInfo(@"Pretending to create an event %@ at %@", name, location);
@end
在你的 javascript 中:
import NativeModules from 'react-native';
var NetworkInfo = NativeModules.NetworkInfo;
....你的代码
更多信息:native-modules-ios
【讨论】:
感谢您的回答。什么是 NetworkInfo API?我在 developer.apple.com/documentation?changes=latest_minor 和 NetworkInfo 上找不到它 - 会提供有关 esim 的任何信息吗? NetworkInfo 就是我放的名字例如,你放你想要的名字。在此示例中创建的类能够访问本机库的目标 c,您可以通过此处描述的库获取 eSim 信息 developer.apple.com/documentation/coretelephony 并在此处查看您的请求的解决方案 ***.com/questions/13644502/… 哦,我明白了。但主要问题是 - 哪个原生 api 可以帮助我获取有关 esim 的信息(安装与否,或者可能帮助我做出这样的结论)。根据***.com/a/55520052/9136852,似乎 CTTelephonyNetworkInfo 和 CTCarrier 不能帮助我解决我的问题 所以,当我到家时,当我在工作时,我会尝试为您创建一个示例。很抱歉现在不能帮助你。 :( 您好!我实现了一个示例并将其放在 git github.com/lucklpn/SimCardInfo 我使用了我在此站点中找到的示例npmjs.com/package/react-native-carrier-info 我确实发现更容易实现它。我希望能帮助你! ;)以上是关于是否有用于检查 iPhone 中是否安装了 eSIM 的 API?的主要内容,如果未能解决你的问题,请参考以下文章
用于运行配置文件/检查器的 XCode 配置文件无效 - iPhone 应用程序