Phonegap使用cordova-plugin-sim获取sim信息

时间:2017-04-12 03:24:23

标签: android ios cordova plugins

我是移动开发的新手。我正在使用PhoneGap,我想在我的应用程序中添加一项功能,以便从iOS和Android上获取SIM卡中的电话号码。我正在使用这个插件:

cordova-plugin-sim

我使用这个非常简单的索引代码来显示我可以从插件中检索的任何信息。

<!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>SIM</title>
            <script type="text/javascript" src="cordova.js"></script>
            <script type="text/javascript">
                document.addEventListener("deviceready",onDeviceReady,false);
                function onDeviceReady(){
                    window.plugins.sim.getSimInfo(successCallback, errorCallback);
                }
                function successCallback(result) {
        document.getElementById("simInfo").innerHTML=JSON.stringify(result);
                }
                function errorCallback(error) {
        document.getElementById("simInfo").innerHTML=JSON.stringify(result);
                }
            </script>
        </head>
        <body>
            <p id="simInfo"></p>
        </body>
    </html>

这不会显示任何内容。我有什么不对或错过的吗?

3 个答案:

答案 0 :(得分:1)

您是在iOS或Android上进行测试吗?在Android 6.0及更高版本上,您需要实现。

  window.plugins.sim.requestReadPermission(successCallback, errorCallback);

同时查看您的代码。在errorCallback函数中,结果将是未定义的。

你需要改变它。

    function errorCallback(error) {
        document.getElementById("simInfo").innerHTML=JSON.stringify(result);
    }

到此

    function errorCallback(error) {
        document.getElementById("simInfo").innerHTML=JSON.stringify(error);
    }

答案 1 :(得分:0)

我发现了这个::

  

注意:phoneNumber的内容不可靠(参见this,this和   本文)。有时phoneNumber只是一个空字符串。

我在代码中做了一些更改但是收到了“未定义”的消息。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>SIM</title>
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript">
            document.addEventListener("deviceready",onDeviceReady,false);
            function onDeviceReady(){
                window.plugins.sim.getSimInfo(successCallback, errorCallback);
            }
            function successCallback(result) {
                document.getElementById("simInfo").innerHTML=JSON.stringify(result);
                document.getElementById("phone").innerHTML=JSON.stringify(result.phoneNumber);
                document.getElementById("carrierName").innerHTML=JSON.stringify(result.carrierName);
            }
            function errorCallback(error) {
                document.getElementById("simInfo").innerHTML=JSON.stringify(error);
            }
        </script>
    </head>
    <body>
        SimInfo :: <p id="simInfo"></p>
        <br />
        Phone Number :: <p id="phone"></p>
        <br />
        Carrier Name :: <p id="carrierName"></p>
        <br />
    </body>
</html>

我附上了结果图片,请检查一下。

enter image description here

请检查一下。 感谢。

答案 2 :(得分:0)

获取用户保存为SIM卡的电话号码。如果不保存任何内容,它将为空字符串。我正在使用redmi note3。它位于设置-> SIM卡和移动网络-> SIM1 / 2->编辑SIM卡号码