NativeScript-Telephony
一个Nativescript插件,用于获取设备的SIM数据(运营商名称、mcc mnc、国家代码、电话号码等)
npm i --save nativescript-telephony

NativeScript-Telephony

这是一个Nativescript插件,可以获取SIM卡数据,如运营商名称、mcc、mnc和国家代码以及其他系统依赖的附加信息。

贡献者

Peter Bakondy,他的cordova-plugin-sim工作。基本上这是他的插件。我遵循了他的源代码作为指南。

支持的平台

  • Android
  • iOS

安装

tns plugin add nativescript-telephony

使用

Typescript

import {Telephony} from 'nativescript-telephony';

Telephony().then(function(resolved) {
console.log('resolved >', resolved)
console.dir(resolved);
}).catch(function(error) {
console.error('error >', error)
console.dir(error);
})

ES6 Promises

如果您不熟悉Promises,请阅读这些

iOS怪癖

Promise.Resolves

{
"carrierName": String,
"countryCode": String,
"mcc": String,
"mnc": String,
"allowsVOIP": Boolean,
}

遗憾的是,我们无法获取更多信息。

Promise.Rejects

当使用模拟器或不存在SIM卡时。

Android怪癖

所有权限对话框都内置在Telephony函数中。

Promise.Resolves

READ_PHONE_STATE权限被DENIED
{
"countryCode": String,
"simOperator": String,
"carrierName": String,
"callState": Number,
"dataActivity": Number,
"networkType": Number,
"phoneType": Number,
"simState": Number,
"isNetworkRoaming": Boolean,
"mcc": String,
"mnc": String,
}
READ_PHONE_STATE权限被GRANTED
{
// START GRANTED PERMISSIONS
"phoneNumber": String,
"deviceId": String,
"deviceSoftwareVersion": String,
"simSerialNumber": String,
"subscriberId": String,
// END GRANTED PERMISSIONS
"countryCode": String,
"simOperator": String,
"carrierName": String,
"callState": Number,
"dataActivity": Number,
"networkType": Number,
"phoneType": Number,
"simState": Number,
"isNetworkRoaming": Boolean,
"mcc": String,
"mnc": String,
}

Promise.Rejects

永远不会。

演示

npm run setup
# iOS
npm run demo.ios
# Android
npm run demo.android

许可协议

此插件由Rob Laverty许可,许可协议为MIT