Если ваше приложение использует WebView с сайтом на котором используется JS трекер, при установке моб. приложения, в mindbox будет создаваться по 2 карточки одного и того же клиента с разными deviceUUID: одна из JS SDK и другая из mobile SDK. Чтобы этого избежать и хранить все данные в одной карточке клиента, нужно выполнить следующие действия:
Добавьте в приложение код, который при получении deviceUUID из мобильного SDK, будет синхронизировать его с JS SDK
Swift
func syncMindboxDeviceUUIDs(with webView: WKWebView) { Mindbox.shared.getDeviceUUID { uuid in guard !uuid.isEmpty else { Mindbox.logger.log(level: .error, message: "[WebView]: Device UUID is empty or invalid") return } let script = """ document.cookie = "mindboxDeviceUUID=\(uuid); path=/"; window.localStorage.setItem('mindboxDeviceUUID', '\(uuid)'); """ DispatchQueue.main.async { webView.evaluateJavaScript(script) { _, error in if let error = error { Mindbox.logger.log(level: .error, message: "[WebView]: Error setting cookies and localStorage: \(error)") } else { Mindbox.logger.log(level: .default, message: "[WebView]: Cookies and localStorage set successfully.") } } } }}
Вызовите этот метод вwebView(_:didCommit:) при реализации WKNavigationDelegate вашегоWKWebView