> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用拖放设计应用内消息

> 使用 OneSignal 的可视化编辑器构建高转化率的应用内消息，包括块、布局、轮播图和个性化功能。

OneSignal 的拖放编辑器让您可以使用模块化块元素构建应用内消息——无需编码。如果您喜欢使用标记语言，请参见[使用 HTML 设计应用内消息](./design-your-in-app-message-with-html)。

<Frame caption="应用内消息拖放编辑器">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/iam-block-create.gif?s=f3a6e2388fc6855a2fc8378fb5ce51b1" alt="使用拖放编辑器创建应用内消息" width="780" height="589" data-path="images/iam/iam-block-create.gif" />
</Frame>

## 前置条件

* 您已在应用中安装并初始化 OneSignal SDK。
* 您正在使用推荐的 SDK 版本以获取最新的编辑器功能：
  * iOS 5.1.5+
  * Android 5.1.9+
* 如果不将图片上传到 OneSignal，则您的图片应托管在快速、可公开访问的 URL 上（推荐使用 CDN），并针对移动屏幕适当调整大小。

<Warning>
  请确保在您的应用中使用最新版本的 OneSignal SDK。
  旧版本仍然可能显示消息，但会使用回退样式（例如，默认边距或默认覆盖层）。使用**预览**和**设备测试**来确认在您支持的最低 SDK 版本上的行为。
</Warning>

***

## 从预建模板开始

预建模板帮助您快速启动，使用专为转化设计的布局（包括权限提示）。选择一个模板，然后更新文案、颜色和操作以匹配您的品牌。

<Note>
  \*\*设备测试：\*\*预建设计已在 Pixel 6+、iPhone（iOS 14+）、Huawei Nova 9、Huawei P50 Foldable 和 iPad（第10代+）上进行了测试。这些模板针对竖屏方向进行了优化，可能在横屏模式下无法按预期显示。
</Note>

***

## 选择消息布局

消息布局控制应用内消息在屏幕上的显示方式。

| 消息类型   | 最适合            | 行为方式           |
| ------ | -------------- | -------------- |
| **顶部** | 简洁公告和确认消息      | 从顶部滑下          |
| **中心** | 大多数营销和产品提示     | 从中心展开并部分填充屏幕   |
| **底部** | 快讯栏、同意提示       | 从底部滑上          |
| **全屏** | 引导流程、多步骤优惠、轮播图 | 展开填充整个屏幕（可选边距） |

<Frame caption="应用内消息布局类型">
  <img src="https://mintcdn.com/onesignal/RWtLFPeffHrC81wI/images/docs/a675b8f-Type.png?fit=max&auto=format&n=RWtLFPeffHrC81wI&q=85&s=e04ab2110fcd37eb6481db3dd8c63ece" alt="顶部、中心、底部和全屏应用内消息布局" width="1115" height="788" data-path="images/docs/a675b8f-Type.png" />
</Frame>

### 使用轮播图构建多屏流程

轮播图让您创建多屏应用内体验，如引导流程、功能介绍或多步骤优惠。

1. 选择**全屏**消息类型。
2. 点击**创建轮播图**。
3. 添加最多 10 张卡片（屏幕）。
4. 使用任意块组合自定义每张卡片。

<Frame caption="轮播图示例">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/carousel.gif?s=0ebac15f1b7b55229705970a84bda5be" alt="包含多张应用内消息卡片的轮播图示例" width="900" height="800" data-path="images/iam/carousel.gif" />
</Frame>

### 方向支持

应用内消息支持竖屏和横屏模式，但布局（特别是模板）可能需要调整才能在两种模式下都表现良好。

<Frame caption="竖屏和横屏应用内消息示例">
  <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/e2b95e5-IAM-portrait-landscape.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=25028bc942075b84814ae5ee850bf458" alt="在竖屏和横屏方向显示的应用内消息" width="1279" height="564" data-path="images/docs/e2b95e5-IAM-portrait-landscape.png" />
</Frame>

<Note> 如果您预计会频繁使用横屏（平板电脑、游戏、视频应用），请在发布前测试横屏模式下的消息。宽屏布局通常需要更小的文本大小、更紧凑的间距或更少的堆叠块。</Note>

***

## 使用块和间距创建整洁布局

所有内容都位于背景块（画布）上。使用：

* 背景上的**内边距**来控制内容与消息边缘之间的间距。
* 单个块上的**外边距**来控制元素之间的间距（标题 → 图像 → 按钮）。

**保持布局一致性的快速规则**

1. 使用**内边距**控制与消息边缘的距离。
2. 使用**外边距**垂直分隔块。
3. 避免在同一侧堆叠大量内边距和外边距。
4. 优先使用居中、基于流的布局，而非紧凑/边缘对齐设计。
5. 发布前始终在多种设备尺寸上使用**预览**。

<Frame caption="编辑器中的内边距与外边距">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/padding-margin.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=f328dfed369bb0369a825818cb264802" alt="应用内编辑器中的背景内边距和块外边距控制" width="1536" height="1024" data-path="images/iam/padding-margin.png" />
</Frame>

***

## 块参考

使用这些块来构建您的消息。每个块都支持样式设置，并且（在大多数情况下）支持可选的点击操作。

### 文本块

用于标题、描述、免责声明或个性化文案。

**可自定义内容**

* **响应式尺寸**：宽度/高度以百分比表示。
* **字体**：Google Fonts。
* **格式化**：粗体、斜体、下划线。
* **颜色**：十六进制或 RGBA（支持透明度）。
* **对齐**：左对齐、居中、右对齐。
* **尺寸**：可调节的字体大小。

**高级选项**

* **外边距**：块周围的空间。

**提示**

* 使用基于语言的分段或[使用 Liquid 语法](./using-liquid-syntax)进行本地化。
* 使用[数据标签](./message-personalization)进行个性化。

<Frame caption="文本块">
  <img src="https://mintcdn.com/onesignal/RWtLFPeffHrC81wI/images/docs/a556236-Screenshot_2022-12-10_at_5.45.53_PM.png?fit=max&auto=format&n=RWtLFPeffHrC81wI&q=85&s=cec5db0519c7ec85ddce8bcc9e4b190f" alt="编辑器中的文本块配置选项" width="1004" height="836" data-path="images/docs/a556236-Screenshot_2022-12-10_at_5.45.53_PM.png" />
</Frame>

### 图像块

使用图像来强调优惠、展示功能或添加品牌元素。

**支持的格式和限制**

* `.jpg`、`.png`、`.gif`
* 最大文件大小：5MB

**提示和建议**

* 使用常见的宽高比，如 `16:9`、`4:3` 或 `3:2`。
* 您可以使用服务器托管的路径动态替换链接和图像 URL。参见[动态 URL](./links#dynamic-urls)。
  * 示例：`https://example.com/images/{{ tag_key }}.png`

**可自定义内容**

* **图像 URL**：推荐使用托管 URL 以获得更好的性能。
* **点击操作**：可选（链接、深度链接、标签、结果、提示）。

**高级选项**

* **点击时关闭**
* **外边距**：块周围的空间。

<Frame caption="图像块">
  <img src="https://mintcdn.com/onesignal/6v_cVPknFpo5qSVB/images/docs/0cc2179-Screenshot_2022-12-10_at_5.46.27_PM.png?fit=max&auto=format&n=6v_cVPknFpo5qSVB&q=85&s=440933533b6d5985256b0ef45a5802a6" alt="编辑器中的图像块配置选项" width="1004" height="718" data-path="images/docs/0cc2179-Screenshot_2022-12-10_at_5.46.27_PM.png" />
</Frame>

<Warning> 如果图像 URL 加载缓慢、被阻止或返回错误，您的消息可能会显示损坏或空白的媒体内容。请将图像托管在可靠的 CDN 上，并验证它们在移动网络上能快速加载。</Warning>

### 按钮块

使用按钮来驱动主要操作，如导航、收集反馈或权限提示。

**可自定义内容**

* 按钮文本和字体样式
* 背景颜色、尺寸和圆角半径
* 可选图标/图像
* 点击操作（标记、结果、提示、深度链接）

**高级选项**

* 点击时关闭
* 外边距
* 边框和阴影

**提示**

* 使用标签个性化按钮文本或目标链接。
* 通过将背景不透明度设置为 0 来制作纯图像按钮。
* 使用微妙的阴影（低不透明度，高模糊）来突出主要 CTA。

<Frame caption="按钮块设置">
  <img src="https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/49beca3-Screenshot_2022-12-10_at_5.48.17_PM.png?fit=max&auto=format&n=YOTSrtBSoqdrJ37A&q=85&s=f3bce4770825e17bae48c4f5f7d8b385" alt="编辑器中的按钮块配置选项" width="996" height="1578" data-path="images/docs/49beca3-Screenshot_2022-12-10_at_5.48.17_PM.png" />
</Frame>

### 关闭按钮块

关闭按钮控制用户是否可以使用"X"图标关闭消息。

**可自定义内容**

* 启用/禁用可见性
* 自定义图标（`.jpg`、`.png`、`.svg`、`.gif`）
* 推荐尺寸：`10x10px`
* 可选点击操作

**高级选项**

* 外边距

<Warning>
  如果您禁用了关闭按钮，请确保用户仍有明确的退出方式（例如，按钮或背景上的**关闭操作**，或者如果您的体验使用了关闭计时器）。否则，您可能会将用户困在消息中。
</Warning>

<Frame caption="关闭按钮设置">
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/c07a30b-Screenshot_2022-12-10_at_5.49.22_PM.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=acdcebb3ae4e83df14dab2d82753f2bf" alt="编辑器中的关闭按钮配置选项" width="990" height="732" data-path="images/docs/c07a30b-Screenshot_2022-12-10_at_5.49.22_PM.png" />
</Frame>

### 背景块

背景是承载您布局的画布。

**可自定义内容**

* 背景颜色（支持 RGBA）
* 背景图像（`.jpg`、`.png`、`.gif`）
* 可选点击操作

**高级选项**

* 内边距（默认 `24px`）
* 点击时关闭

<Frame caption="背景块设置">
  <img src="https://mintcdn.com/onesignal/6tscVAtiSqz353kV/images/docs/9a441fd-Background_Controls.png?fit=max&auto=format&n=6tscVAtiSqz353kV&q=85&s=04a65877dc5e9818147ba15975cc5e92" alt="背景块的颜色、图像、内边距和操作控制" width="1071" height="806" data-path="images/docs/9a441fd-Background_Controls.png" />
</Frame>

***

## 个性化和本地化

您可以使用[数据标签](./add-user-data-tags)个性化应用内消息，包括文本、按钮标签和 URL。

有关本地化，请参见[多语言消息](./multi-language-messaging#send-messages-in-different-languages)。

<Check>
  一个好的个性化测试方法是将消息发送到一个具有已知标签值的小型内部分段，并确认：

  * 文本和图像以预期的替换内容呈现
  * 链接正确解析
  * 按钮触发预期的点击结果/标签
</Check>

***

## 常见问题

### 如何移除顶部/底部横幅应用内消息的灰色覆盖层或投影？

是的——更新您的 SDK 并添加以下配置。

**iOS 5.1.5+**

```xml iOS Info.plist theme={null}
<key>OneSignal_in_app_message_hide_drop_shadow</key>
<true/>
<key>OneSignal_in_app_message_hide_gray_overlay</key>
<true/>
```

**Android 5.1.9+**

```xml Android Manifest.xml theme={null}
<meta-data android:name="com.onesignal.inAppMessageHideGrayOverlay" android:value="true"/>
<meta-data android:name="com.onesignal.inAppMessageHideDropShadow" android:value="true"/>
```

***

## 后续步骤

* 了解[应用内点击操作](./iam-click-actions)，自定义用户点击消息中元素时的行为。
* 尝试不同的[应用内消息触发器](./iam-triggers)来控制消息出现的时机。
* 需要更多自定义？尝试[使用 HTML 设计应用内消息](./design-your-in-app-message-with-html)。

***
