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调用方式有关。以下是常见原因及解决方案:

  1. 权限配置缺失

    • manifest.jsonApp模块配置 中勾选 通讯录(Contact) 模块。
    • 源码视图 中确认以下配置已添加:
      "permissions": {
          "Contacts": {
              "description": "访问通讯录"
          }
      }
      
  2. Android平台权限申请

    • 确保在 manifest.json 中配置以下权限(Android):
      "android": {
          "permissions": ["READ_CONTACTS", "WRITE_CONTACTS"]
      }
      
    • 首次调用前需动态申请权限,使用 uni.authorizeplus.android.requestPermissions
  3. iOS平台配置

    • manifest.jsoniOS设置 中添加通讯录权限描述:
      "ios": {
          "privacyDescription": {
              "contacts": "应用需要访问通讯录以实现好友添加功能"
          }
      }
      
  4. API调用时机问题

    • 确保在 plusready 事件后调用API:
      document.addEventListener("plusready", () => {
          plus.contacts.getAddressBook(/* 参数 */);
      });
      
  5. 参数校验与异常处理

    • 检查传入参数是否符合规范,并添加错误回调:
      plus.contacts.getAddressBook(
          (book) => { /* 成功逻辑 */ },
          (error) => { console.error("获取通讯录失败:" + error.message); }
      );
回到顶部