概述
本教程向您展示如何使用单个 HTML 应用内消息创建多步骤引导轮播。与依赖滑动手势的传统轮播不同,此方法使用按钮驱动导航,并将所有步骤保持在一条消息中。 您将构建的内容:- 包含图片、文本和按钮的两步引导流程
- 按钮导航(点击”下一步”前进,点击”开始使用”关闭)
- 进度指示点
- 步骤之间的平滑淡入淡出过渡

带有按钮驱动导航的示例引导轮播
- 引导用户完成简短的引导或教育流程(2-5 步)
- 要求用户明确点击按钮才能继续(无滑动手势)
- 将所有内容保持在一个 HTML 应用内消息中以简化操作
- 流程完成时自动关闭消息
本指南使用 HTML 应用内消息以获得完全控制。您也可以使用拖放编辑器构建基于卡片的引导流程——这些卡片支持滑动但定制性较低。
前提条件
开始之前,请确保您具备:- 一个已启用应用内消息的活跃 OneSignal 应用
- 创建或编辑 HTML 应用内消息的权限
- 在您的移动应用中安装了 Mobile SDK
- 对 HTML、CSS 和 JavaScript 有基本了解
多步骤流程的工作原理
在深入代码之前,了解技术方法很重要。此实现使用一个 HTML 应用内消息,通过显示和隐藏内容在步骤之间切换,而不是加载多个单独的消息。 该架构依赖于四个核心组件:1
每个步骤的卡片容器
每个步骤都包装在一个带有
card 类和唯一 ID 的 <div> 中:- 所有卡片同时存在于 DOM 中
- 一次只有一张卡片可见(由
active类控制)
2
CSS 可见性控制
CSS 使用透明度和指针事件处理显示/隐藏逻辑:为什么这很重要:
opacity: 0在视觉上隐藏卡片但保留其在布局中的位置pointer-events: none防止意外点击隐藏的卡片transition创建平滑的淡入淡出效果
3
JavaScript 状态管理
setActive(i) 函数控制哪张卡片可见:- 从所有卡片中移除
active - 将
active添加到目标卡片 - 更新进度指示点
4
按钮事件监听器
按钮触发导航或关闭:重要提示:
OneSignalIamApi.close(e) 是从 HTML 内部关闭应用内消息的 OneSignal SDK 方法。关键见解: 这是应用内消息中的单页应用 (SPA) 模式。所有内容一次性加载,JavaScript 管理状态变化而无需重新加载。
步骤 1:创建新的 HTML 应用内消息
- 在 OneSignal 仪表板中,转到 Messages → In-App Messages
- 点击 New In-App Message
- 选择 HTML 作为消息类型
- 选择 Full Screen 或 Large 布局(推荐用于引导以最大化视觉效果)
- 继续进入 HTML 编辑器
HTML 编辑器预览可能无法完全反映运行时行为。请始终在真实设备或测试用户上进行测试,以验证动画、按钮行为和关闭操作。
步骤 2:添加 HTML 模板
用以下模板替换编辑器内容。此模板包括:- 自包含代码: 所有 HTML、CSS 和 JavaScript 在一个文件中
- 按钮驱动导航: 无滑动手势(跨设备更可靠)
- 淡入淡出过渡: 步骤之间平滑的透明度变化
- OneSignal SDK 集成: 使用
OneSignalIamApi.close(e)关闭消息 - 移动端优化: 带有 viewport meta 标签的响应式布局
查看完整 HTML 模板
查看完整 HTML 模板
步骤 3:自定义您的内容
可安全自定义的内容
您可以修改这些元素而不会破坏功能: 内容:<h1>标签中的标题文本<p>标签中的正文内容- 按钮标签(
下一步、开始使用) background-image: url('...')样式中的图片 URL
- 颜色:更改
.btn背景色、文本颜色或点的颜色 - 间距:调整内边距和外边距
- 排版:修改 font-family、font-size、font-weight
- 圆角:更新按钮和图片的
border-radius值
添加更多步骤
要添加第三个步骤,请按照以下模式操作:- 添加 HTML 卡片:
- 添加进度点:
- 更新
setActive()函数:
- 更新上一步骤的按钮 ID:
将卡片 1 按钮的
id="done"更改为id="next-1",然后添加点击监听器:
- 将关闭按钮添加到新的最后一张卡片(card-2):
步骤 4:测试应用内消息
测试清单
- 在 OneSignal 仪表板中保存消息
- 配置发送设置:
- 设置触发条件(例如,会话开始、特定页面浏览)
- 选择目标受众或选择测试用户
- 发送到测试设备:
- 使用测试用户预览而不影响生产用户
- 在物理设备上安装您的应用(推荐而非模拟器以获得准确行为)
- 验证功能:
- ✓ 第一张卡片显示正确内容
- ✓ “下一步”按钮前进到卡片 2
- ✓ 进度点正确更新
- ✓ 淡入淡出过渡平滑
- ✓ “开始使用”按钮关闭消息
- ✓ 消息不会立即重新出现(检查频率限制设置)
模拟器可能无法准确反映真实设备行为,特别是触摸交互和 SDK 集成。在发布到生产环境之前,请务必在物理设备上进行测试。
常见问题故障排除
后续步骤
跟踪用户参与度:- 使用
data-onesignal-unique-label属性添加点击跟踪(模板中已包含)以衡量步骤之间的流失率 - 在 Messages → In-App Messages → [您的消息] → Analytics 中查看点击分析