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

A. *_*sha 4 ios swift onesignal

我正在尝试将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)

小智 5

是的,添加kOSSettingsKeyInAppLaunchURL: false到您的中onesignalInitSettings。这将在默认浏览器而不是中打开URL UIWebView

如果要显示自定义视图,请不要在有效负载中使用URL参数。而是在其他数据中使用自定义键值对。


小智 5

对于OneSignal SDK 3.xx

按照 OneSignal 的建议,将以下键添加到项目的info.plist中:

OneSignal_suppress_launch_urls = true
Run Code Online (Sandbox Code Playgroud)

对于OneSignal SDK 版本 2.xx

添加kOSSettingsKeyInAppLaunchURL: false到 OneSignal 的initSetting