MOBILEWEBVIEW-34: Refactoring close inapp#687
MOBILEWEBVIEW-34: Refactoring close inapp#687enotniy wants to merge 3 commits intomission/webview-inappfrom
Conversation
| val view: WebViewPlatformView = controller.view | ||
| inAppLayout.removeView(view) | ||
| view.parent.safeAs<ViewGroup>()?.removeView(view) | ||
| controller.destroy() |
There was a problem hiding this comment.
тут destroy вызывается и ещё ниже следом
webViewController?.destroy()
| mindboxLogI("In-app dismissed by webview action ${message.action} with payload ${message.payload}") | ||
| hide() | ||
| release() | ||
| inAppController.close() |
There was a problem hiding this comment.
Здесь и в других аналогичных местах с onInAppDismiss проблема будет:
Вызывается closeCurrentInapp , а там внутри
if (isInAppActive()) {
currentHolder?.wrapper?.inAppActionCallbacks
?.copy(onInAppDismiss = { mindboxLogI("Do not save the closing timestamp for in-app as it's restored automatically when the session is reopened") })
?.onInAppDismiss
?.onDismiss()
}
флаг isInAppActive мы нигде не сбрасываем в false.
Поэтому дисмисс внутри closeCurrentInApp так же выполнитится
There was a problem hiding this comment.
я поправил. Это условие сделано только для скрытия после окончания сессии. Выделил под это отдельный метод
| controller.executeOnViewThread { | ||
| hide() | ||
| release() | ||
| inAppController.close() |
There was a problem hiding this comment.
Не понимаю почему, но потестил и заметил , что при разворачивании приложения, где WebView каждый раз отправляется Inapp.Show и счетчики показа увеличиваются. Видимо из-за того что pausedHolder затираем
15:14:04.067 I InAppMessageManagerImpl: Render time is 373602ms, prepared time is 452ms
15:14:04.067 I InAppRepositoryImpl: Increase count of shown inapp per session, previous count 7
15:14:04.071 I InAppRepositoryImpl: Increase count of shown inapp per day
There was a problem hiding this comment.
Поправил. Это было из-за того, что неправильно pausedHolder работал
https://tracker.yandex.ru/MOBILEWEBVIEW-34