在phonegap应用程序中安装插件
我想用这个插件创建一个phonegap应用程序。 我已经完成了这个步骤来创建和添加插件:
1:我是使用phonegap cli creatin这个应用程序: -
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>
进入index.html,然后在下面添加ondeviceready: -
var telephoneNumber = cordova.require("cordova/plugin/telephonenumber");
telephoneNumber.get(function(result) {
alert("result = " + result);
}, function(error) {
alert("error = " + error.code);
});
6:已添加
<plugin name="TelephoneNumber" value="com.simonmacdonald.cordova.plugins.TelephoneNumber"/>
到www目录下的config.xml中。
7:建立
phonegap local build android
8:上传到build.phonegap.com并创建.apk文件。
然后,当我在Android设备上运行此应用程序时,它不会提醒任何人。 我采取了什么错误的步骤。 我对手机差距了解不多。 谷歌搜索后,我创造了这个。 我看过这个教程也添加了这个插件。 当我在本地构建它时,它不显示任何错误。 但它也没有运行。
请帮我看看这个错误。
首先我建议你熟悉标准工具,特别是adb
。 这些可以让你提供更多信息,找出真正发生的事情。
浏览指南也很有帮助,所以你可以确定你知道你在做什么以及你为什么这样做。 查看Android代码的逐步调试。
我也鼓励你从源头上构建一个Cordova应用程序,而不使用花哨的工具来获取所有组件聚集在一起的方式和方式。 你的源代码树很混乱,你似乎已经使用了Cordova 3.1和Cordova 2.9的混合体,甚至是Phonegap? 你只需要包含cordova.js
和你的脚本(在这种情况下是js/script.js
),现在没有别的。
话虽如此,谈到重大问题。
您的电话get
返回错误。 为什么? 快速查看插件的源代码:
https://github.com/macdonst/TelephoneNumberPlugin/blob/master/src/com/simonmacdonald/cordova/plugins/TelephoneNumber.java
该插件检索TelephonyManager
并尝试调用getLine1Number
。 正如你可以看到的result != null
是false,直到返回一个PluginResult.Status.ERROR
,这就是为什么你会得到你的错误警告框。
这是手头的核心问题。 TelephonyManager
为您的请求返回null
。 为什么? 经过四处搜寻,你可能会偶然发现:
因此,请转到设备上的设置>关于手机>状态,然后查看“我的电话号码”字段。 它是“未知”吗? 那么运气很不好。 我的SIM没有存储这个号码,所以我得到了和你一样的结果。
另外需要注意的是,至少在Android 4.4上,该方法返回一个空字符串""
而不是null
,所以当在我的Android 2.3.7设备上进行测试时,我得到了一个null
,从而得到了错误分支。 但是在我的Android 4.4.2设备上,我得到了一个""
并获得了成功分支,但显然这个数字是空的。
如果您想尝试,可以使用这个非常高级的指南在模拟器上设置数字。 所以,你可以做什么? 可能没有什么是通过使用API,即使Android系统本身没有存储在SIM卡上也不会获得您的电话号码。 询问用户或发送短信以通过网络服务发现号码也是一种选择。
除非在'deviceready'事件触发后调用代码,否则上面的步骤5将不起作用。
您需要进行某种调用才能知道文档何时加载,您可以执行以下操作之一:
<body onload="onLoad()">
<script>
function onLoad() {
document.addEventListener('deviceready', deviceReady, false);
}
</script>
OR(w / jquery):
<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);
});
}
这将确保您的文档已加载并且cordova已准备好致电。
链接地址: http://www.djcxy.com/p/53411.html