跳转到内容

开始使用

  1. 安装插件

    Terminal window
    npm i @capgo/capacitor-sim
  2. 同步平台

    Terminal window
    npx cap sync
  • Android: 确保已授予 android.permission.READ_PHONE_STATE(在 Android 13+ 上为 READ_BASIC_PHONE_STATE)。Capacitor 包含清单声明,但你必须在调用 getSimCards 之前请求权限。
  • iOS: 运营商信息会自动可用;该平台不会提示请求额外的权限。请注意,由于操作系统限制,iOS 16.4+ 返回的数据有限。
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('电话权限被拒绝');
}
}
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,
});
});
  • 双卡设备: 遍历返回的数组;每个条目对应一个卡槽。如果存在,subscriptionId 可帮助你与 Android 的电话 API 交互。
  • iOS 16.4+: Apple 隐藏了多个运营商属性。预期会出现占位值(--65535),并在 UI 中规划备选方案。
  • Web: 插件返回空数据,因为浏览器无法访问 SIM 信息。