uni-app 获取通讯录闪退
uni-app 获取通讯录闪退
调用plus.contacts.getAddressBook APIapp直接闪退
1 回复
更多关于uni-app 获取通讯录闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在uni-app中调用plus.contacts.getAddressBook
导致闪退通常与权限配置或API调用方式有关。以下是常见原因及解决方案:
-
权限配置缺失
- 在
manifest.json
的App模块配置
中勾选通讯录(Contact)
模块。 - 在
源码视图
中确认以下配置已添加:"permissions": { "Contacts": { "description": "访问通讯录" } }
- 在
-
Android平台权限申请
- 确保在
manifest.json
中配置以下权限(Android):"android": { "permissions": ["READ_CONTACTS", "WRITE_CONTACTS"] }
- 首次调用前需动态申请权限,使用
uni.authorize
或plus.android.requestPermissions
。
- 确保在
-
iOS平台配置
- 在
manifest.json
的iOS设置
中添加通讯录权限描述:"ios": { "privacyDescription": { "contacts": "应用需要访问通讯录以实现好友添加功能" } }
- 在
-
API调用时机问题
- 确保在
plusready
事件后调用API:document.addEventListener("plusready", () => { plus.contacts.getAddressBook(/* 参数 */); });
- 确保在
-
参数校验与异常处理
- 检查传入参数是否符合规范,并添加错误回调:
plus.contacts.getAddressBook( (book) => { /* 成功逻辑 */ }, (error) => { console.error("获取通讯录失败:" + error.message); } );
- 检查传入参数是否符合规范,并添加错误回调: