uni-app 小米手机MUI14安装应用后通知权限无法点击被置灰

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

uni-app 小米手机MUI14安装应用后通知权限无法点击被置灰
今天遇到问题了,通过3.8.7打包APP后上架小米市场,客户安装后 在用用权限中 的通知权限 点击进入后是灰色的。而且客户回答的是 在mui13是正常的晚上升到14后 打开就置灰了。有遇到这个问题的人吗?求解答这个是mui14的问题还是APP啊

图片

项目创建方式 版本号
打包APP 3.8.7
mui 13, 14

10 回复

解决了么 ?


没 没人回复 你也遇到了?

回复 易软: 大佬解决了吗?

改 targetSdkVersion 为32

现在要上架playstore sdk 34又遇到这样的问题了,有人解答吗?如果不上 sdk 34上不了架啊。打31之类的可以开推送,在学深度定制版安卓,小米os ,oppo os都置灰。推送开不了。

是的 上架就必须34 但是会置灰 只能单独打 32 的不上架

从33开始,推送权限更新了,需要添加以下权限:
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

在处理uni-app应用在小米手机MIUI 14系统上安装后通知权限被置灰、无法点击的问题时,这通常与系统权限管理或应用权限策略有关。MIUI系统有时会基于应用的行为、用户反馈或安全策略,对某些权限进行限制。虽然无法直接提供修改系统权限管理的建议,但可以通过代码尝试引导用户手动开启权限,或检测权限状态并给出相应提示。

检测权限状态并引导用户

  1. 使用uni-app的API检测权限

    在uni-app中,你可以使用uni.getSettinguni.authorize API来检测并请求权限。虽然直接针对通知权限的检测和请求API有限,但可以通过检测其他相关权限或尝试发送通知来间接判断。

uni.getSetting({
    success: function (res) {
        // 这里假设通知权限的状态无法直接获取,但可以通过其他方式间接判断
        // 比如检测推送订阅状态(如果使用了推送服务)
        if (!res.authSetting['scope.userLocation']) { // 示例:位置权限
            uni.authorize({
                scope: 'scope.userLocation',
                success: function () {
                    console.log('用户同意授权');
                },
                fail: function () {
                    console.log('用户拒绝授权');
                    // 引导用户去设置页面手动开启权限
                    uni.showModal({
                        title: '提示',
                        content: '需要您授予位置权限才能正常使用功能,请前往设置开启。',
                        success: function (res) {
                            if (res.confirm) {
                                uni.openSetting();
                            }
                        }
                    });
                }
            });
        }
    }
});

注意:上述代码示例中使用了位置权限作为检测对象,因为通知权限的直接检测在uni-app中并不直接支持。你需要根据实际情况调整逻辑,比如通过推送服务订阅状态来间接判断通知权限。

  1. 引导用户前往设置页面

    如果检测到权限未开启,可以使用uni.openSetting引导用户前往应用权限设置页面手动开启。

  2. 适配和测试

    针对MIUI 14系统,特别需要注意适配和测试,因为不同系统版本可能对权限管理有不同的实现。确保在小米手机上进行充分的测试,以验证权限处理逻辑的有效性。

通过上述方法,虽然不能直接解决权限被置灰的问题,但可以提高用户体验,通过引导用户手动开启权限来确保应用功能的正常使用。

回到顶部