Android 在phonegap应用程序中安装插件

Android 在phonegap应用程序中安装插件,android,cordova,Android,Cordova,我想使用创建一个phonegap应用程序。我已经完成了以下步骤来创建和添加插件: 1:我正在使用phonegap cli创建此应用程序:- phonegap create GetPhone --id "com.phone" --name "GetPhoneApp" 2:进入项目并建造 cd GetPhone phonegap local build android 3:安装插件 phonegap local plugin add https://github.com/macdonst/Tel

我想使用创建一个phonegap应用程序。我已经完成了以下步骤来创建和添加插件:

1:我正在使用phonegap cli创建此应用程序:-

phonegap create GetPhone --id "com.phone" --name "GetPhoneApp"
2:进入项目并建造

cd GetPhone
phonegap local build android
3:安装插件

phonegap local plugin add https://github.com/macdonst/TelephoneNumberPlugin
4:将telephonenumber.js移动到www文件夹

5:加入

<script type="text/javascript" charset="utf-8" src="telephonenumber.js"></script>
6:补充

<plugin name="TelephoneNumber" value="com.simonmacdonald.cordova.plugins.TelephoneNumber"/>
8:上传到build.phonegap.com并创建.apk文件

然后,当我在android设备上运行此应用程序时,它不会发出任何警报。我是否采取了错误的步骤。我不知道更多关于电话差距。谷歌搜索之后,我创建了这个。我也看到了添加这个插件。当我在本地构建它时,它不会显示任何错误。但它也没有运行


请帮我找出错误

除非在触发“deviceready”事件后调用代码,否则上述步骤5将不起作用

您需要进行某种调用才能知道何时加载文档,您可以执行以下操作之一:

<body onload="onLoad()">
<script>
function onLoad() {
    document.addEventListener('deviceready', deviceReady, false);
}
</script>

这将确保您的文档已加载,并且cordova已准备好呼叫。

首先,我建议您熟悉标准工具,尤其是。这些可以让你提供更多的信息,了解到底发生了什么

浏览网页也很有帮助,所以你可以确定自己知道自己在做什么以及为什么要这样做。看看Android代码的逐步调试

我还鼓励您从源代码构建Cordova应用程序,而无需使用花哨的工具来掌握所有组件的去向和组合方式。您的源代码树令人困惑,您似乎混合使用了Cordova 3.1和Cordova 2.9,甚至Phonegap?您只需要包括
cordova.js
和您的脚本(
js/script.js
,在本例中),目前没有其他内容

话虽如此,我还是要谈谈主要问题

调用
get
返回一个错误。为什么?快速查看插件的源代码:

插件检索并尝试调用。如您所见,
result!=null
为false,返回一个
PluginResult.Status.ERROR
,这就是为什么会出现错误警报框

这是当前的核心问题
TelephonyManager
为您的请求返回一个
null
。为什么?在四处搜索后,您可能会发现:

因此,导航到设备上的设置>关于电话>状态,并查看“我的电话号码”字段。是“未知”吗?那真倒霉。我的SIM卡没有储存号码,所以我得到了和你一样的结果

另一件需要注意的事情是,至少在Android 4.4上,该方法返回一个空字符串
,而不是
null
,因此在我的Android 2.3.7设备上测试时,我得到了
null
,从而得到了错误分支。但在我的安卓4.4.2设备上,我得到了一个
,并获得了成功分支,但很明显,这个数字是空的


如果您想尝试,可以使用在模拟器上设置数字。那你能做什么呢?如果你的手机号码没有存储在SIM卡上,那么使用API可能什么也得不到,甚至安卓系统本身也无法获取你的手机号码。通过web服务询问用户或发送短信息以发现号码也可能是一种选择。

如果您将
控制台。在代码中记录
警报
,是否会发出警报?不,没有警报。我想我弄错了什么地方。是我的过程是赖特………请帮助我。。。我需要一个插件来获取电话号码。哪个电话号码显示“error=undefined”。我需要当前设备的电话号码。谢谢你的帮助。但是我已经尝试过了,而且以前也分享过我的代码。它们是和。你能看看这个吗?谢谢你的回复。正如你所说的“SIM卡不存储号码”,我也看到了一些问题。所以,在我的代码中有一种可能,可以给出设备编号,也可以不给出。我也考虑过短信验证。这是我的备份选项。因此,我不确定在这段代码中,我将获得设备编号。你的意思是我用任何密码都查不到电话号码?是的,这正是我的意思。同样,如果您在设备上导航到设置>关于手机>状态,并查看“我的手机号码”字段及其“未知”或空字段,则即使是Android也无法获取您的手机。你必须用其他方法来解决这个问题。
phonegap local build android
<body onload="onLoad()">
<script>
function onLoad() {
    document.addEventListener('deviceready', deviceReady, false);
}
</script>
<script>
$(document).ready(function () {
    document.addEventListener('deviceready', deviceReady, false);
}
</script>
function deviceReady() {
    var telephoneNumber = cordova.require("cordova/plugin/telephonenumber");
    telephoneNumber.get(function(result) {
    alert("result = " + result);
    }, function(error) {
    alert("error = " + error.code);
    });
}