2014-05-23 204 views
1

我已經安裝了這個插件,用戶的電話號碼:https://github.com/8enmann/TelephoneNumberPlugin/獲取與科爾多瓦/ PhoneGap的

,並把這個代碼在我angularjs控制器:

var telephoneNumber = cordova.require("cordova/plugin/telephonenumber"); 
telephoneNumber.get(function(result) { 
     alert("result = " + result); 
}, function() { 
    alert("error"); 
}); 

什麼也沒有發生,我的代碼,它的分解...

我看到這是一個比原來更新的叉子,我認爲它工作良好。我犯了一個錯誤,或者最近的cordova版本有錯誤?

回答

3

嘿,你可以嘗試使用Java創建你自己的代碼和使用他們使用JavaScript。
例如我用這個JavaScript代碼來獲取IMEI在我的應用程序的一個:

$imei=window.YourActivityName.get_imei(); 

對於這個工作,你需要啓用JavaScript在您的應用程序,並在Java中定義功能get_imei()。

你的Java應該是這個樣子:

public class YourActivityName extends CordovaActivity 
{ 
......... 
public void onCreate(Bundle savedInstanceState) 
{ 
....... 
appView.addJavascriptInterface(this, "YourActivityName"); 
super.loadUrl(Config.getStartUrl(), 10000); 
....... 
} 

//Define function to return imei in Java: 
@JavascriptInterface 
public String get_imei() { 
    TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
    String imei = telephonyManager.getDeviceId(); 
    return imei;  
} 
} 

,你可以在Java下面的代碼爲

//Define function to return Number in Java: 
    @JavascriptInterface 
    public String get_number() { 
TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE); 
    String mPhoneNumber = tMgr.getLine1Number(); 
     return mPhoneNumber;  
    }  

取代IMEI碼所需的權限:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

它的工作爲了我。希望能幫助到你。!

+0

你的方法給出了遺漏的類型錯誤:無法讀取未定義的錯誤 – aaviss

0

你要添加的js代碼:

<script src="cordova.js"></script> 
<script src="scripts/telephonenumber.js"></script> 

編輯:

我試圖thiese步驟獲得它的工作:

1)我安裝了插件和II得到肯定,我有「com.simonmacdonald.telephonenumber」文件夾裏面插件文件夾在我的項目中。

2)我在插件文件夾(com.simonmacdonald.telephonenumber)的js文件中搜索並替換了所有「cordova/plugin/telephonenumber」和「telephonenumber」。

3)然後,它並沒有爲我工作,我想包括「telephonenumber.js」我的項目,這個文件可以在com.simonmacdonald.telephonenumber \ WWW發現,所以我將該文件複製到腳本我的項目文件夾,它運作良好。

4)現在這個工作:

var telephoneNumber = cordova.require("telephonenumber"); 
telephoneNumber.get(function (result) { 
    alert(result); 
    callback(result); //callback function is called here 
}, function() { 
    alert("error"); 
}); 

ü應該知道,這個插件並不在某些手機上的工作,我對華碩K00E和GT-5830嘗試無果而終,但我得到的結果和S7562 N7003。

我認爲,這個插件是不完美的,現在我用短信從發送客戶得到他們PHONENUMBER ...

+0

的特性「get_imei」請提供你的答案的詳細信息。那個腳本是什麼,你從哪裏得到它的?等等。 –

+0

該腳本可在https://github.com/macdonst/TelephoneNumberPlugin – oozzal

0

我知道我遲到了。 搜索了很多後,我發現this插件,這對我來說完美的作品... 在您的項目

添加這些插件把這些代碼在你的index.js

here $(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); 
    } 

If your phone do not allow to show phonenumber then it will go to failed block.

但請注意That使用之前: 有些供應商不會將電話號碼發佈到SIM卡。

You can check it in Settings-> About Phone-> Status-> SIM Status.

相關問題