This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Expo 联系人(旧版)
一个提供访问手机系统联系人的库。
重要
expo-contacts库中包含legacy版本的 Contacts API。它可以与基于类的expo-contactsAPI 一起使用,后者从根目录导出。要使用 legacy API,请从expo-contacts/legacy导入它
expo-contacts 提供对设备系统联系人的访问权限,让你可以获取联系人信息,以及添加、编辑或删除联系人
在 iOS 上,联系人具有多层分组系统,你也可以通过此 API 访问该系统
安装
If you are installing this in an existing React Native app, make sure to install expo in your project.
在应用配置中进行配置
如果你在项目中使用配置插件(Continuous Native Generation(CNG)),则可以使用内置的配置插件配置 expo-contacts。该插件允许你配置各种无法在运行时设置、必须构建新的应用二进制文件才能生效的属性。如果你的应用不使用 CNG,则需要手动配置此库
Example app.json with config plugin
Configurable properties
Are you using this library in an existing React Native app?
如果你不使用 Continuous Native Generation(CNG)(而是手动使用原生的 android 和 ios 项目),则需要在原生项目中配置以下权限:
-
对于 Android,将
android.permission.READ_CONTACTS和android.permission.WRITE_CONTACTS权限添加到项目的 android/app/src/main/AndroidManifest.xml:<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> -
对于 iOS,将
NSContactsUsageDescription键添加到项目的 ios/[app]/Info.plist:<key>NSContactsUsageDescription</key> <string>Allow $(PRODUCT_NAME) to access your contacts</string>
使用
API
import * as Contacts from 'expo-contacts/legacy';
Component
Type: React.PureComponent<ContactAccessButtonProps>
Creates a contact access button to quickly add contacts under limited-access authorization.
For more details, you can read the Apple docs about the underlying ContactAccessButton SwiftUI view.
ColorValueA color of the button's background. Provided color should not be transparent, otherwise it may not satisfy platform requirements for button legibility.
stringWhen the query produces a single result, the contact access button shows the caption under the matching contact name. It can be nothing (default), email address or phone number.
Acceptable values are: 'default' | 'email' | 'phone'
string[]An array of email addresses. The search omits contacts matching query that also match any email address in this array.
string[]An array of phone numbers. The search omits contacts matching query that also match any phone number in this set.
stringA string to match against contacts not yet exposed to the app. You typically get this value from a search UI that your app presents, like a text field.
ColorValueA color of the button's title. Slightly dimmed version of this color is used for the caption text. Make sure there is a good contrast between the text and the background, otherwise platform requirements for button legibility may not be satisfied.
ColorValueA tint color of the button and the modal that is presented when there is more than one match.
Static methods
Returns a boolean whether the ContactAccessButton is available on the platform.
This is true only on iOS 18.0 and newer.
booleanConstants
Methods
Promise<string>Promise<ContactsPermissionResponse>Promise<boolean>Promise<boolean>Promise<string[]>Promise<ExistingContact | null>Promise<ContactsPermissionResponse>Event subscriptions
Types
Literal type: union
Acceptable values are: CalendarFormats | {CalendarFormats}
String union of SortTypes values.
Literal type: union
Permission expiration time. Currently, all permissions are granted permanently.
Acceptable values are: 'never' | number
Enums
权限
Android
此库会自动向你的应用添加 READ_CONTACTS 和 WRITE_CONTACTS 权限:
iOS
此库使用以下使用说明键: