[已删除]
[已删除]
  • 发布:2021-02-01 15:01
  • 更新:2021-06-30 14:22
  • 阅读:572

【报Bug】使用HTLM5+的plus.contacts.getAddressBook方法会导致App闪退

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macOS 10.15.4

HBuilderX类型: 正式

HBuilderX版本号: 2.8.11

手机系统: iOS

手机系统版本号: IOS 14

手机厂商: 苹果

手机机型: iPhone xs

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
            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)  
                }  
            })

操作步骤:

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闪退

bug描述:

App第一次调用plus.contacts.getAddressBook方法,会弹出通讯录授权提示,如果点击确定授权,那么可以正确读到通讯录信息
然后第二次调用plus.contacts.getAddressBoo,由于之前已经给了权限,所以这次调用,不会再弹出授权的弹窗,而是直接闪退,100%能复现

2021-02-01 15:01 负责人:无 分享
已邀请:
脉搏科技

脉搏科技

请问问题解决了吗,我也遇见了这个问题,求大佬指教呀

  • DCloud_iOS_WZT

    什么问题?写一个新的ASK以及可复现的DEMO把

    2021-06-30 15:58

该问题目前已经被锁定, 无法添加新回复