我正在尝试将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) 我正在使用触摸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)