MBL-2852: Include a Referrer Header in Project Campaign embedded WebViews (#2446)

Use `loadDataWithBaseURL` for embedded Campaign WebViews

Co-authored-by: Tony Teate <4317686+tonyteate@users.noreply.github.com>
This commit is contained in:
Tony Teate
2025-11-14 16:26:19 -05:00
committed by GitHub
parent fdee5ebe5f
commit e22d34c8d9

View File

@@ -4,6 +4,8 @@ import android.annotation.SuppressLint
import androidx.fragment.app.FragmentActivity
import com.kickstarter.databinding.ViewElementExternalSourceFromHtmlBinding
import com.kickstarter.libs.htmlparser.ExternalSourceViewElement
import com.kickstarter.libs.utils.Secrets
import com.kickstarter.libs.utils.extensions.getEnvironment
import com.kickstarter.ui.adapters.projectcampaign.ViewElementAdapter
import com.kickstarter.ui.viewholders.KSViewHolder
import com.kickstarter.ui.views.WebChromeVideoFullScreenClient
@@ -18,7 +20,9 @@ class ExternalViewViewHolder(
fun configure(element: ExternalSourceViewElement) {
setupWebView()
val htmlContent = "<body style=\"margin: 0; padding: 0\">${element.htmlContent}</body>"
webView.loadData(htmlContent, "text/html", "utf-8")
// If `null`, `loadDataWithBaseURL` will default to "about:blank". Our own URL may be preferable.
val baseUrl = requireActivity.getEnvironment()?.webEndpoint() ?: Secrets.WebEndpoint.PRODUCTION
webView.loadDataWithBaseURL(baseUrl, htmlContent, "text/html", "utf-8", null)
}
@SuppressLint("SetJavaScriptEnabled")