[英]Installation of plugin in phonegap app
我想使用这个插件创建一个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>
到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
调用返回错误。 为什么? 快速浏览一下插件的源代码:
该插件检索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,如果它没有存储在SIM卡上,甚至Android系统本身也无法获得你的号码。 询问用户或发送SMS以通过web服务发现号码也是一种选择。
除非在触发'deviceready'事件后调用代码,否则上面的步骤5将不起作用。
您需要某种调用来知道文档何时加载,您可以执行以下任一操作:
<body onload="onLoad()">
<script>
function onLoad() {
document.addEventListener('deviceready', deviceReady, false);
}
</script>
或(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已准备好呼叫。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.