【问题标题】:Is it possible to trigger the system dialog for requestAuthorization for Push Notifications multiple times是否可以多次触发推送通知的 requestAuthorization 系统对话框
【发布时间】:2020-04-08 09:18:32
【问题描述】:

当用户最初说“不”时,我想请求用户在一段时间后再次允许推送通知。

documentation 表示这是不可能的:

用户可以授予或拒绝授权,系统会存储用户的响应,以便后续调用此方法不会再次提示用户。

我的演示证实了这一点。

尽管如此,有没有人找到办法做到这一点?

【问题讨论】:

  • 然后您必须检查访问权限并像大多数应用程序一样显示自定义对话框。显示步骤并打开设置应用程序。

标签: ios objective-c push-notification apple-push-notifications


【解决方案1】:

答案:否(目前无法再次询问用户推送通知权限,除非用户重新安装应用程序。)


但您可以检查权限并打开设置应用程序。 检查和打开设置应用的代码:

func askForLocationPermission() {
        let status  = CLLocationManager.authorizationStatus()
        if status == .denied || status == .restricted {
            let alert = UIAlertController(title: "your title", message: "your message", preferredStyle: .alert)

            present(alert, animated: true, completion: nil)

            alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in
                switch action.style{
                case .default: if #available(iOS 10.0, *) {
                    UIApplication.shared.open(NSURL(string: UIApplication.openSettingsURLString)! as URL, options: convertToUIApplicationOpenExternalURLOptionsKeyDictionary([:]), completionHandler: nil)
                } else {
                    // Fallback on earlier versions
                    }
                case .cancel: print("cancel")
                case .destructive: print("destructive")
                @unknown default: break
                }
            }))
        }
    }

【讨论】:

    【解决方案2】:

    没有办法再次询问用户推送通知。您可以使用代码检查您的应用程序的推送通知是启用还是禁用,然后用户必须从设置中启用推送通知,并且再次使用警报/弹出窗口不会要求推送通知。

    最佳做法是检查用户是否允许应用发送推送通知。如果用户不允许应用发送推送通知,您可以通过向用户显示自定义/本机警报来要求用户允许应用设置中的推送通知权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多