开始使用
-
安装插件
Terminal window npm i @capgo/capacitor-simTerminal window pnpm add @capgo/capacitor-simTerminal window yarn add @capgo/capacitor-simTerminal window bun add @capgo/capacitor-sim -
同步平台
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync
- Android: 确保已授予
android.permission.READ_PHONE_STATE(在 Android 13+ 上为READ_BASIC_PHONE_STATE)。Capacitor 包含清单声明,但你必须在调用getSimCards之前请求权限。 - iOS: 运营商信息会自动可用;该平台不会提示请求额外的权限。请注意,由于操作系统限制,iOS 16.4+ 返回的数据有限。
请求运行时访问权限 (Android)
Section titled “请求运行时访问权限 (Android)”import { Sim } from '@capgo/capacitor-sim';
const status = await Sim.checkPermissions();if (status.readSimCard !== 'granted') { const updated = await Sim.requestPermissions(); if (updated.readSimCard !== 'granted') { throw new Error('电话权限被拒绝'); }}读取 SIM 卡
Section titled “读取 SIM 卡”const { simCards } = await Sim.getSimCards();
simCards.forEach((card, index) => { console.log(`卡槽 ${card.simSlotIndex ?? index}:`, { carrier: card.carrierName, mcc: card.mobileCountryCode, mnc: card.mobileNetworkCode, country: card.isoCountryCode, subscriptionId: card.subscriptionId, });});平台注意事项
Section titled “平台注意事项”- 双卡设备: 遍历返回的数组;每个条目对应一个卡槽。如果存在,
subscriptionId可帮助你与 Android 的电话 API 交互。 - iOS 16.4+: Apple 隐藏了多个运营商属性。预期会出现占位值(
--、65535),并在 UI 中规划备选方案。 - Web: 插件返回空数据,因为浏览器无法访问 SIM 信息。