当前位置:首页 > uni-app

uniapp弹窗式广告

2026-03-05 10:03:21uni-app

实现弹窗式广告的方法

在UniApp中实现弹窗式广告可以通过多种方式完成,包括使用原生组件、第三方插件或自定义组件。以下是几种常见的方法:

使用uni.showModal实现基础弹窗

uni.showModal({
    title: '广告',
    content: '点击查看详情',
    showCancel: true,
    success: function (res) {
        if (res.confirm) {
            console.log('用户点击确定');
            // 跳转到广告页面
            uni.navigateTo({
                url: '/pages/advert/advert'
            });
        } else if (res.cancel) {
            console.log('用户点击取消');
        }
    }
});

自定义弹窗组件

uniapp弹窗式广告

创建一个自定义弹窗组件,可以更灵活地控制样式和行为:

  1. 创建组件文件/components/ad-popup.vue
<template>
    <view class="popup-mask" v-if="show" @click="close">
        <view class="popup-content" @click.stop>
            <image src="/static/ad.jpg" mode="widthFix"></image>
            <view class="close-btn" @click="close">×</view>
        </view>
    </view>
</template>

<script>
export default {
    props: {
        show: {
            type: Boolean,
            default: false
        }
    },
    methods: {
        close() {
            this.$emit('close');
        }
    }
}
</script>

<style>
.popup-mask {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0,0,0,0.5);
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
}
.popup-content {
    position: relative;
    width: 80%;
    background: #fff;
    border-radius: 10rpx;
    padding: 20rpx;
}
.close-btn {
    position: absolute;
    top: -40rpx;
    right: -40rpx;
    width: 60rpx;
    height: 60rpx;
    background: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 40rpx;
}
</style>
  1. 在页面中使用组件:
<template>
    <view>
        <ad-popup :show="showPopup" @close="showPopup = false"></ad-popup>
        <button @click="showPopup = true">显示广告</button>
    </view>
</template>

<script>
import adPopup from '@/components/ad-popup.vue'
export default {
    components: { adPopup },
    data() {
        return {
            showPopup: false
        }
    }
}
</script>

使用第三方广告插件

uniapp弹窗式广告

可以考虑接入官方广告联盟或第三方广告SDK:

  1. 在manifest.json中配置广告插件
  2. 按照插件文档初始化广告
  3. 在需要显示广告的地方调用API

定时显示广告

可以在App.vue中设置全局定时器,定期显示广告:

export default {
    onLaunch() {
        // 每30分钟显示一次广告
        setInterval(() => {
            uni.showModal({
                title: '特惠活动',
                content: '限时优惠,点击查看',
                success(res) {
                    if (res.confirm) {
                        uni.navigateTo({
                            url: '/pages/promotion/promotion'
                        });
                    }
                }
            });
        }, 1800000); // 30分钟
    }
}

注意事项

  • 广告频率不宜过高,避免影响用户体验
  • 提供明显的关闭按钮
  • 考虑用户偏好设置,允许关闭特定类型广告
  • 遵守各平台广告投放政策
  • 移动端注意弹窗尺寸适配

通过以上方法,可以在UniApp中灵活实现各种样式的弹窗式广告功能,根据实际需求选择最适合的方案。

标签: 广告uniapp
分享给朋友:

相关文章

vue实现广告组件

vue实现广告组件

Vue 实现广告组件的核心方法 数据驱动的广告内容渲染 通过 props 接收广告数据(如图片URL、跳转链接等),使用 v-bind 动态绑定属性。典型结构包含 <a> 标签嵌套 <…

uniapp开发电视应用

uniapp开发电视应用

开发环境准备 确保已安装HBuilderX最新版本,这是uniapp官方推荐的开发工具。安装Node.js环境,用于依赖管理和打包构建。准备Android Studio或Xcode用于调试和打包TV应…

uniapp安装uview

uniapp安装uview

安装uView到UniApp项目 方法一:通过npm安装(推荐) 确保项目已初始化npm,在项目根目录执行以下命令: npm install uview-ui 在main.js文件中引入并注册uV…

uniapp视频

uniapp视频

uniapp视频开发基础 uniapp支持通过video组件实现视频播放功能,该组件兼容多端(H5、小程序、App等),基本用法如下: <template> <video…

vue实现广告组件

vue实现广告组件

vue实现广告组件的方法 使用动态组件实现 在Vue中可以通过动态组件的方式加载广告组件,根据不同的条件展示不同的广告内容。动态组件使用<component :is="currentCompon…

混合uniapp

混合uniapp

混合 UniApp 开发模式 混合 UniApp 开发通常指将 UniApp 与其他原生技术(如原生 iOS/Android 或 Flutter)结合使用,以兼顾跨平台效率和原生性能。以下是常见的混合…