2017-04-12 134 views
1

我是移動開發新手。我正在使用PhoneGap,我想在我的應用中添加一項功能,以便在iOS和Android上從SIM卡中獲取電話號碼。我使用這個插件:Phonegap使用cordova-plugin-sim獲取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> 

這不顯示任何內容。有什麼我做錯了或失蹤?

+0

上面的代碼是工作的罰款對我..可以告訴你的PhoneGap版本,我使用這個插件.https://github.com/scwl/cordova-plugin-sim/tree/57a76b3 – vijay

+0

@vijay我剛剛下載的桌面版本從phonegap網站昨天所以我非常確定這是最新版本,然後我安裝了節點js,所以我可以安裝插件,我知道插件安裝正確,因爲我能夠使用條形碼掃描儀沒有任何問題-so-永遠,但感謝插件的鏈接,我會嘗試 – user253938

+0

你檢查了這個「注意:phoneNumber的內容是不可靠的(看到這個,這和本文)。有時phoneNumber只是一個空串「。 – Hiten

回答

1

您是在iOS或Android上測試?在Android 6.0及以上版本中,您需要實施。

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

還在看你的代碼。在errorCallback函數中,結果將是未定義的。

您需要更改此設置。

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

對此

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(error); 
      } 
+0

編輯添加有關結果未定義的信息在errorCallback函數中。 –

+0

我已經嘗試了你的建議,但仍然沒有任何顯示http://imgur.com/7sO84Q0我甚至實現了requestReadPermission,但它沒有改變結果 – user253938

0

我發現這個::

注意:phoneNumber的內容是不可靠的(看到這一點,這一點, 這篇文章)。有時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

請檢查這一點。 謝謝。

+0

我的程序仍然沒有顯示任何內容,我複製了你的整個代碼,仍然,什麼都沒... http://imgur.com/7sO84Q0我可以問你正在使用什麼版本的phonegap嗎? – user253938

+0

節點版本是7.4.0和 phonegap版本是6.4.6 – Hiten