uni-app 使用HTML5+的plus.contacts.getAddressBook方法会导致App闪退
uni-app 使用HTML5+的plus.contacts.getAddressBook方法会导致App闪退
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Mac | macOS 10.15.4 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
HBuilderX类型:正式
HBuilderX版本号:2.8.11
手机系统:iOS
手机系统版本号:IOS 14
手机厂商:苹果
手机机型:iPhone xs
页面类型:vue
打包方式:云端
示例代码:
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)
}
})
操作步骤:
- App第一次调用plus.contacts.getAddressBook,会弹出授权弹窗,同意通讯录授权后,即可正确获得通讯录信息
- 再次调用plus.contacts.getAddressBook,之前已经同意授权,所以不会再弹出授权弹窗,而是App直接闪退
也就是说:在给了通讯录获取权限后,App再次调用plus.contacts.getAddressBook,就会闪退 iOS系统版本:14.3 iPhone 12 pro,iPhone XS,iPhone 12都复现了这个闪退问题
预期结果: 预期结果为正确获得通讯录信息
实际结果: 实际结果为,调用方法时,App闪退
bug描述: App第一次调用plus.contacts.getAddressBook方法,会弹出通讯录授权提示,如果点击确定授权,那么可以正确读到通讯录信息 然后第二次调用plus.contacts.getAddressBoo,由于之前已经给了权限,所以这次调用,不会再弹出授权的弹窗,而是直接闪退,100%能复现
更多关于uni-app 使用HTML5+的plus.contacts.getAddressBook方法会导致App闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
请问问题解决了吗,我也遇见了这个问题,求大佬指教呀
更多关于uni-app 使用HTML5+的plus.contacts.getAddressBook方法会导致App闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
什么问题?写一个新的ASK以及可复现的DEMO把