You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Android Jetpack Compose中集成IronSource横幅广告的技术问询

在Jetpack Compose中集成IronSource(Unity LevelPlay)横幅广告

当然可以在Jetpack Compose中展示IronSource广告,核心思路和你给出的AdMob实现一致——用AndroidView组件包裹原生的IronSource广告容器。以下是完整的实现方案:

前提准备

先确保你已经完成IronSource SDK的基础集成:

  • 在项目和模块的build.gradle中添加官方依赖
  • 在AndroidManifest.xml配置必要的权限与元数据
  • 在Application类或应用启动时完成SDK初始化(IronSource.init(context, YOUR_APP_KEY))

Compose实现代码

AndroidView(
    modifier = Modifier.fillMaxWidth(),
    factory = { context ->
        // 创建用于承载横幅广告的容器
        val bannerContainer = FrameLayout(context).apply {
            layoutParams = FrameLayout.LayoutParams(
                FrameLayout.LayoutParams.MATCH_PARENT,
                FrameLayout.LayoutParams.WRAP_CONTENT
            )
        }

        // 加载横幅广告,指定尺寸(可选BANNER、LARGE_BANNER、RECTANGLE等)
        IronSource.loadBanner(
            context,
            bannerContainer,
            IronSourceBannerSize.BANNER
        )

        // 可选:设置广告监听,处理加载状态、点击事件等
        IronSource.setBannerListener(object : IronSourceBannerListener {
            override fun onBannerAdLoaded() {
                // 广告加载成功回调
            }

            override fun onBannerAdLoadFailed(error: IronSourceError?) {
                // 广告加载失败,可在这里做重试或提示逻辑
            }

            override fun onBannerAdClicked() {
                // 用户点击广告回调
            }

            override fun onBannerAdScreenPresented() {}
            override fun onBannerAdScreenDismissed() {}
            override fun onBannerAdLeftApplication() {}
        })

        bannerContainer
    },
    // 组件销毁时清理广告资源,避免内存泄漏
    onDispose = {
        IronSource.destroyBanner()
    }
)

关键注意点

  • 必须在调用loadBanner前完成SDK初始化,否则广告无法加载
  • 根据布局需求选择合适的广告尺寸,IronSourceBannerSize提供了多种预设选项
  • 务必在onDispose中调用destroyBanner(),释放广告占用的资源

内容的提问来源于stack exchange,提问作者ddxv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 04:07:11