const _self = this
// 获取存储在系统的通讯录
plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE, function(addressBook) {
addressBook.find("", function(contacts) {
if (contacts.length > 0) {
_self.$refs.phonePopup.closeModel()
}
// 赋值通讯录信息
_self.setPhone(contacts)
// 开始备份
_self.startBackupPhone()
})
}, function(e) {
if (e.code == "20") {
_self.$utils.showToast('请同意权限获取!', 2000)
}
})
![[已删除]](http://img-cdn-tc.dcloud.net.cn/uploads/avatar/001/40/92/82_avatar_mid.jpg?v=0)
- 发布:2021-02-01 15:01
- 更新:2021-06-30 14:22
- 阅读:718
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: macOS 10.15.4
HBuilderX类型: 正式
HBuilderX版本号: 2.8.11
手机系统: iOS
手机系统版本号: IOS 14
手机厂商: 苹果
手机机型: iPhone xs
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
1、App第一次调用plus.contacts.getAddressBook,会弹出授权弹窗,同意通讯录授权后,即可正确获得通讯录信息
2、再次调用plus.contacts.getAddressBook,之前已经同意授权,所以不会再弹出授权弹窗,而是App直接闪退
也就是说:在给了通讯录获取权限后,App再次调用plus.contacts.getAddressBook,就会闪退
iOS系统版本:14.3
iPhone 12 pro,iPhone XS,iPhone 12都复现了这个闪退问题
1、App第一次调用plus.contacts.getAddressBook,会弹出授权弹窗,同意通讯录授权后,即可正确获得通讯录信息
2、再次调用plus.contacts.getAddressBook,之前已经同意授权,所以不会再弹出授权弹窗,而是App直接闪退
也就是说:在给了通讯录获取权限后,App再次调用plus.contacts.getAddressBook,就会闪退
iOS系统版本:14.3
iPhone 12 pro,iPhone XS,iPhone 12都复现了这个闪退问题
预期结果:
预期结果为正确获得通讯录信息
预期结果为正确获得通讯录信息
实际结果:
实际结果为,调用方法时,App闪退
实际结果为,调用方法时,App闪退
bug描述:
App第一次调用plus.contacts.getAddressBook方法,会弹出通讯录授权提示,如果点击确定授权,那么可以正确读到通讯录信息
然后第二次调用plus.contacts.getAddressBoo,由于之前已经给了权限,所以这次调用,不会再弹出授权的弹窗,而是直接闪退,100%能复现
DCloud_iOS_WZT
什么问题?写一个新的ASK以及可复现的DEMO把
2021-06-30 15:58