【问题标题】:Switch to phone's native Contacts (view) app from PhoneGap/Cordova app从 PhoneGap/Cordova 应用程序切换到手机的本机联系人(查看)应用程序
【发布时间】:2015-05-16 01:12:21
【问题描述】:

有没有办法打开 iOS/Android 原生联系人应用程序来显示某些特定联系人?

我正在创建一个 Phonegap 应用,该应用通过 contacts 插件 API 使用手机的联系人列表。为方便用户,我有一个 [显示联系人] 按钮,该按钮应切换到该特定联系人上的本机联系人应用程序。

有可能吗?

【问题讨论】:

  • 你看到我的回答了吗?
  • 是的,我有。赏金问题往往会持续几天,因此有更多人愿意发布他们的答案。
  • 没关系。我只想知道我的研究问题是否有帮助。
  • 没有办法做到这一点
  • @tillda 有赏金吗?

标签: android ios cordova contacts


【解决方案1】:

使用插件通过浏览器 JavaScript 代码实现原生化。这是excellent guide for building a custom PhoneGap plugin for iOS。它有很好的文档记录,你会发现每一步都有很多截图。

如果您想深入了解该主题,我建议您按顺序阅读这两个文档:

  1. Apache Cordova Plugin Development Guide
  2. Apache Cordova iOS Plugins

如果您需要更多帮助并且有更具体的问题,我很乐意提供帮助。

【讨论】:

  • 您确定可以通过在 ObjC/Swift 中将其编写为本机插件来打开联系人应用程序中的特定联系人吗?
  • 调用本机代码后,您可以做任何您需要的事情。使用 Address Book UI 框架的 ABPersonViewController 类,它实现了用于显示人员记录的视图,但请记住,人员视图控制器必须与导航控制器一起使用才能正常工作。您可以阅读该过程的分步说明并在此处下载完整工作示例应用程序的源代码developer.apple.com/library/ios/documentation/ContactData/…
  • 这就是cordova插件的工作原理,它让你从列表中选择联系人,但你无法打开联系人应用程序。自己做插件没意义,打不开通讯录应用
  • 使用 ABPersonViewController 您需要将displayedPerson 属性设置为要显示的人员记录,用户不需要选择任何内容。这发生在我没有引用的 ABPeoplePickerNavigationController 上。该操作要求一种从浏览器手机应用程序切换到特定联系人的本机联系人应用程序的方法。我提出了一个解决方案来做到这一点。
  • 但是你得到了这个人的数据,你没有切换到联系人应用程序,cordova 联系人插件已经使用 ABPersonViewController
【解决方案2】:

这里之前已经回答过:how do I open iphone apps via phonegap

“一个应用程序(基于 PhoneGap 或其他)可能导致 另一个要启动的应用是打开一个 URL"

打开联系人:

您需要一个“URL 方案”,例如此处定义的方案:

// In config.xml
<gap:url-scheme>
    <scheme>app1scheme</scheme>
</gap:url-scheme>
Then from your other app you'll just have a link to app1scheme://, eg simply

<a href="app1scheme://">Start App1</a>

联系人数据库:

如果您还没有,您可以使用 PhoneGap 访问“联系人数据库”:

iOS (in the named application directory's config.xml)

<feature name="Contacts">
    <param name="ios-package" value="CDVContacts" />
</feature>

来源:http://docs.phonegap.com/en/edge/cordova_contacts_contacts.md.html#Contacts

另一个例子,没有 PhoneGap(访问日历):

<a href="calendar://">Click me!</a>

Now go to your iOS app's info.plist file. In that add the following tags:

<key>CFBundleURLTypes</key>
<array>
<dict>
    <key>CFBundleURLName</key>
    <string>com.companyname.appname</string>
    <key>CFBundleURLSchemes</key>
    <array>
        <string>calendar</string>
    </array>
</dict>
</array>
Save the plist file and exit it. After this when you open the web page in Safari browser of your iOS device and click on the link, your iOS app will invoke. I hope it helps!

来源:https://stackoverflow.com/a/7658785/950427

【讨论】:

  • 有没有办法在通讯录应用中操作特定的联系人(例如通过其 ID)?
  • @tillda 这是一个好问题。我不确定具体的联系方式。查看这个 PhoneGap 示例,为什么不直接访问数据并将它们保存在您的应用程序中? devcenter.appery.io/tutorials/using-the-contacts-component.
  • 你基本上已经进行了谷歌搜索。那不是研究。您以前使用过 PhoneGap/Cordova 吗?您说:“您需要一个“URL 方案”,例如此处定义的方案”。不可以。URL 方案必须由应用程序定义:在这种情况下,Android 的联系人应用程序和 iOS 的联系人应用程序 - 用户tillda 显然无法修改系统应用程序并添加这些方案。如果这些方案已经被定义,并且你会找到它们,那就是研究!投反对票。
  • 哎哟。我只是想帮忙。你应该冷静下来。为什么要浪费你的时间?你对自己名誉的伤害比对我的伤害更大。
  • @Athena 是对的,这个答案没有提供任何有价值的信息,也根本没有回答这个问题。我相信它得到了 3 票。
猜你喜欢
  • 2014-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-21
相关资源
最近更新 更多