Cordova / Phonegap获取设备电话号码(Android&iOS)

5

你是否可以使用Phonegap/Cordova开发混合移动应用程序,并在Android和iOS设备上访问设备电话号码?

2个回答

8
iOS:您可以使用CoreTelephony框架检索电话号码,需要添加以下权益:com.apple.coretelephony.Identity.get。不过,一旦您将应用程序上传到App Store,苹果可能会拒绝您的应用程序。
但是,如果您计划使用“企业分发”计划进行分发,则完全没有问题,请参见Igor Fedorchuk和Dylan 此处的答案,以及另一个详细的答案。 Android: 是的,您可以使用这个插件,或者编写一个Cordova插件来连接以下代码:
TelephonyManager tm = (TelephonyManager)appContext.getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tm.getLine1Number();

所需的权限是android.permission.READ_PHONE_STATE

1
实际上,上面的Android代码存在一些问题(并非所有设备都存储电话号码),如此讨论所述。 - Cotta

1

Android: 我知道我来晚了。在搜寻了很久之后,我找到了this插件,对我非常有效... 在你的项目中添加这些插件。

将以下代码放入你的index.js文件中。

 $(document).ready(function () {
    document.addEventListener("deviceready", onDeviceReady, false);
 });

function onDeviceReady() {
    window.plugins.phonenumber.get(success, failed);

    document.addEventListener("backbutton", onBackKeyDown, false);
}

function success(phonenumber) {
    console.log("My number is " + phonenumber);
}

function failed(phonenumber) {
    console.log("Error " + phonenumber);
}

如果您的手机不允许显示电话号码,那么它将进入失败块。
但是从那个:一些供应商不会将电话号码发布到SIM卡中。
您可以在“设置 -> 关于手机 -> 状态 -> SIM状态”中进行检查。

如何知道这是否足够安全以进行安装? - Raz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接