自定义推送通知的iOS权限对话框

ua4mk5z4  于 2023-02-20  发布在  iOS
关注(0)|答案(7)|浏览(205)

当iOS应用首次尝试注册推送通知时,系统会弹出一个权限对话框,询问用户是否具有接收推送通知的权限。是否可以自定义此对话框的文本,以解释为什么需要这些权限?
大多数权限对话框消息都可以通过输入NS*UsageDescriptionInfo.plist键来自定义。例如,NSCameraUsageDescription键控制请求访问用户摄像头时显示的对话框文本。但似乎没有用于推送通知的此类键。

rkue9o1l

rkue9o1l1#

否,这是一个系统对话框,无法自定义。

zte4gxcn

zte4gxcn2#

我见过的一个解决方案是,应用程序会打开自己的自定义对话框,解释为什么需要权限,然后应用程序立即请求权限,打开系统对话框。
这可能适合于说服用户接受许可请求以便获得对特征的访问,或者在知道特征将不可用的情况下拒绝请求。

z2acfund

z2acfund3#

不可能,因为你根本无法控制它

axr492tv

axr492tv4#

不,你不能改变系统内置的消息。因为你没有任何控制它。

qf9go6mv

qf9go6mv5#

我不知道你是指像这张图片标题下的文字

如果是,修改你的info.plist文件。添加一个新的密钥Privacy - User Notifications Usage Description,这也是一个Xcode内置选项,你可以从菜单中选择。然后键入任何文本值。

以下是AppDelegate didFinishLaunchingWithOptions中的请求代码:

if UserDefaults.shared.isFirstLaunch {
    UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { success, error in
        if success {
            print("All set!")
        } else if let error = error {
            print(error.localizedDescription)
        }
    }
    UserDefaults.shared.isFirstLaunch = false
}
mftmpeh8

mftmpeh86#

正如Septronic所指出的,at least as of macOS 12.3 / iOS 15.4,允许通知的提示的主体可以使用没有真正记录的NSUserNotificationsUsageDescription Info.plist键来定制。
您可以使用所需字符串将键Privacy - User Notifications Usage Description的值添加到应用的Info.plist。如果直接编辑XML Plist,请使用以下命令

<key>NSUserNotificationsUsageDescription</key>
<string>Your description goes here.</string>
wi3ka0sx

wi3ka0sx7#

无法自定义系统对话框标题。但您可以自定义下面的描述消息。

相关问题