小编A. *_*sha的帖子

处理通知时如何禁止OneSignal打开WebView

我正在尝试将OneSignal集成到我的应用程序中。我想要的是当用户点击通知以模态呈现所需的ViewController时。我在handleNotificationActionOneSignal初始化时实现了开放VC逻辑。问题是OneSignal仍然打开其WebView,而我不希望它打开。用户点击通知时,有什么方法可以禁用打开WebView吗?

let onesignalInitSettings = [kOSSettingsKeyAutoPrompt: false]
OneSignal.initWithLaunchOptions(launchOptions,
                                        appId: "myAppID",
                                        handleNotificationAction: { result in
                                            guard let payload = result?.notification.payload else { return }
                                            guard let additionalData = payload.additionalData else { return }
                                            guard let venueID = additionalData["internal"] as? String else { return }
                                                    DispatchQueue.main.async {
                                                        self.showVenueDetails(venueID)
                                                    }
        },
                                        settings: onesignalInitSettings)
        OneSignal.inFocusDisplayType = .notification
        OneSignal.promptForPushNotifications(userResponse: { accepted in
            print("User accepted notifications: \(accepted)")
        })
Run Code Online (Sandbox Code Playgroud)

ios swift onesignal

4
推荐指数
2
解决办法
622
查看次数

TouchID错误代码:-1004 NSLocalizedDescription:需要用户交互

我正在使用触摸ID登录的应用程序.它应该仅在首次启动时询问触摸ID(即,当应用程序从后台输入前景时,我不要求触摸ID身份验证).以下是我展示touchID的方法:

AppDelegate.swift:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
   let loginViewController = storyboard.instantiateViewControllerWithIdentifier("login") as! LoginViewController
   rootViewController = loginViewController
   let navigationController = UINavigationController(rootViewController: rootViewController)
   window!.rootViewController = navigationController
}
Run Code Online (Sandbox Code Playgroud)

然后在LoginViewController的viewDidAppear()中我要求触摸如下:

LoginViewController.swift:

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    let context = LAContext()
    if context.canEvaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics, error: nil) {
       context.evaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics,
                                       localizedReason: NSLocalizedString("Login To Your Account", comment: ""),
                                       reply: { [weak self] (success, error) in
          dispatch_async(dispatch_get_main_queue(), {
             if success {
                self?.loginUser()
             } else if error!.code != LAError.UserCancel.rawValue {
                self?.focusOnPassword()
             } else 
          })
       }) …
Run Code Online (Sandbox Code Playgroud)

ios touch-id swift

2
推荐指数
1
解决办法
1530
查看次数

标签 统计

ios ×2

swift ×2

onesignal ×1

touch-id ×1