uni-app首次启动会弹窗获取电话权限

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app首次启动会弹窗获取电话权限
没有写任何获取电话权限的代码,但是首次进去app时还是会出现弹窗

图片1 图片2

5 回复

可以在Manifest配置文件里改下配置 默认不申请权限 / 应用发布信息 / “distribute” : { / android打包配置 / “android” : { “allowBackup” : false, “permissionExternalStorage” : { “request” : “none”, “prompt” : “应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。” }, “permissionPhoneState” : { “request” : “none”, “prompt” : “为保证您正常、安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。” }


没有用欸,还是一直弹

回复 3***@qq.com: 你好,你现在解决了嘛

实测,没有用

在uni-app中实现首次启动弹窗请求电话权限的功能,可以结合manifest.json配置文件、uni.getSetting API以及uni.authorize API来实现。以下是一个简单的实现案例:

  1. 配置manifest.json: 首先,在manifest.json文件中声明电话权限。

    {
      "mp-weixin": { // 以微信小程序为例,其他平台类似
        "appid": "your-app-id",
        "permission": {
          "scope.userLocation": {
            "desc": "你的位置信息将用于小程序电话功能"
          },
          "scope.phoneNumber": {
            "desc": "你的电话号码将用于小程序电话功能"
          }
        }
      }
    }
    
  2. 在App.vue中处理权限请求: 在App.vueonLaunch生命周期函数中,检查并请求电话权限。

    <script>
    export default {
      onLaunch() {
        // 检查是否已经授权电话权限
        uni.getSetting({
          success: (res) => {
            if (!res.authSetting['scope.phoneNumber']) {
              // 未授权,显示弹窗请求权限
              uni.showModal({
                title: '提示',
                content: '为了提供更好的服务,我们需要获取您的电话权限',
                success: (modalRes) => {
                  if (modalRes.confirm) {
                    // 用户点击确认,请求电话权限
                    uni.authorize({
                      scope: 'scope.phoneNumber',
                      success: () => {
                        console.log('用户同意授权电话权限');
                        // 可以在这里处理授权后的逻辑,比如请求用户电话
                      },
                      fail: () => {
                        console.log('用户拒绝授权电话权限');
                        // 可以在这里处理拒绝授权的逻辑
                      }
                    });
                  } else if (modalRes.cancel) {
                    console.log('用户取消授权电话权限');
                  }
                }
              });
            } else {
              console.log('用户已授权电话权限');
              // 可以在这里处理已授权的逻辑
            }
          }
        });
      }
    }
    </script>
    

以上代码在uni-app应用启动时检查用户是否已授权电话权限,如果未授权,则显示一个弹窗请求用户授权。用户点击确认后,通过uni.authorize API请求电话权限,并根据用户的选择(同意或拒绝)执行相应的逻辑。

请注意,不同平台(如微信小程序、H5、App等)的权限管理机制可能有所不同,上述代码主要基于微信小程序。如果在其他平台上运行,请根据相应平台的文档进行适当调整。此外,实际开发中应考虑到用户隐私和合规性,确保权限请求的合理性和必要性。

回到顶部