如何在Ionic中使联系人电话号码可点击以拨打电话和发送短信?

4
我从GitHub克隆了Ionic项目。
联系人的电话号码无法点击呼叫和发送短信。所以对于index.html文件的第39行,我进行了转换。
<p ng-if="contact.emails.length > 0">{{contact.emails[0].type}} : {{contact.emails[0].value}}</p>

to

<p ng-if="contact.phones.length > 0">{{contact.phones[0].type}} : <a ng-href='{{contact.phones[0].value}}'>{{contact.phones[0].value}}</a></p>

但是事实证明,该应用程序将不再加载任何联系人的信息。
我是否遗漏了什么或者在发送数据方面完全错误了?

我们需要看到您传递给ng-href的变量值。锚标记需要传递的仅是href="tel:numberwithnospacesordashes"。 - tuckerjt07
实际上,您能否将填充这些值的控制器代码一并提供?这将有助于诊断。 - tuckerjt07
你安装了插件吗?cordova plugin add org.apache.cordova.contacts? - macrog
2个回答

8
为了在ionic中打电话,您需要在confi.xml中添加以下代码。
<access launch-external="yes" origin="tel:*" />

根据您的观点,您需要添加:

<a ng-href=tel:{{user.phoneNumber}} class="button button-positive">Call me</a>

0

更新:

我刚刚注意到这可能是加载数据而不是链接本身的问题。如果不是下面的问题,需要查看您的控制器代码以了解更多信息,为什么它没有填充ng-href...

之前:

使用以下href应该足以触发调用:

tel:'+ number

Angular(ionic所在的框架)不喜欢任何不寻常的东西进入锚点href,除非您告诉它您想要它。请参见此处:

http://forum.ionicframework.com/t/ng-href-tel-redirecting-to-call-with-empty-number/4567/2

如果你只是想让它工作起来,最快的解决方法是在你的视图中添加以下内容:

<p ng-if="contact.phones.length > 0">{{contact.phones[0].type}} : <a href="#" ng-click="triggerCall('{{contact.phones[0].value}}')">{{contact.phones[0].value}}</a></p>

然后在你的控制器中:

$scope.triggerCall = function(number){
    document.location.href = 'tel:' + number
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接