diff --git a/cleverpush/src/main/java/com/cleverpush/banner/AppBannerCarouselAdapter.java b/cleverpush/src/main/java/com/cleverpush/banner/AppBannerCarouselAdapter.java index 61298d1d..52c93fe0 100644 --- a/cleverpush/src/main/java/com/cleverpush/banner/AppBannerCarouselAdapter.java +++ b/cleverpush/src/main/java/com/cleverpush/banner/AppBannerCarouselAdapter.java @@ -71,6 +71,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -667,14 +668,25 @@ public void onPageFinished(WebView view, String url) { "};\n" + "CleverPush.trackClick = function(buttonId, customData) {\n" + " CleverPush.trackClickStringified(buttonId, customData ? JSON.stringify(customData) : null);\n" + + "};\n" + + "CleverPush.getSubscriptionContext = function() {\n" + + " return new Promise(function(resolve) {\n" + + " window.CleverPush._resolveSubscriptionContext = resolve;\n" + + " CleverPush.getSubscriptionContextRequest();\n" + + " });\n" + "};\n", null ); + String contextJson = getSubscriptionContextJson(); + webView.evaluateJavascript( + "if (typeof CleverPush !== 'undefined') { CleverPush.subscriptionContext = " + contextJson + "; }", + null + ); } }); webView.loadUrl(block.getUrl()); - webView.addJavascriptInterface(new CleverpushInterface(), "CleverPush"); + webView.addJavascriptInterface(new CleverpushInterface(webView), "CleverPush"); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, @@ -725,6 +737,7 @@ private void composeHtmlBanner(LinearLayout body, String htmlContent) { activity.runOnUiThread(() -> { String html = VoucherCodeUtils.replaceVoucherCodeString(htmlContent, voucherCode); String lower = html.toLowerCase(Locale.ROOT); + String contextJson = getSubscriptionContextJson(); String jsToInject = "" + "