【问题标题】:Cordova / Phonegap get phone number of device (Android & iOS)Cordova / Phonegap 获取设备的电话号码(Android & iOS)
【发布时间】:2015-11-07 10:40:15
【问题描述】:

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

【问题讨论】:

    标签: android ios cordova phonegap-plugins cordova-plugins


    【解决方案1】:

    iOS: 您可以使用 CoreTelephony 框架检索电话号码,您需要添加以下权利:com.apple.coretelephony.Identity.get。 但是,一旦您将应用上传到 AppStore,Apple 可能会拒绝您的应用。

    但是如果您打算使用“企业分发”计划进行分发,您应该完全没有问题,请参阅 Igor Fedorchuk 和 Dylan here 的回答,以及另一个详细说明的 answer here

    安卓: 是的,你可以使用this plugin,或者编写一个连接以下代码的cordova插件:

    TelephonyManager tm = (TelephonyManager)appContext.getSystemService(Context.TELEPHONY_SERVICE);
    String mPhoneNumber = tm.getLine1Number();
    

    需要的权限是android.permission.READ_PHONE_STATE"

    【讨论】:

    • 实际上上面的Android代码存在一些问题(并非所有设备都存储了电话号码),如this discussion中所述
    【解决方案2】:

    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);
    }
    

    如果您的手机不允许显示电话号码,那么它将进入失败阻止。

    但是来自That : 一些供应商不会将电话号码发布到 SIM 卡上。

    您可以在设置->关于手机->状态->SIM卡状态中查看。

    【讨论】:

    • 如何知道安装是否足够安全?
    猜你喜欢
    • 1970-01-01
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 2023-03-19
    • 2012-11-20
    • 2018-11-09
    相关资源
    最近更新 更多