> ## 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.

# 应用内点击操作

> 在应用内消息元素上配置点击操作，以打开 URL、请求推送或位置权限、跟踪结果、为用户打标签或触发自定义逻辑。

点击操作是附加到应用内消息元素（按钮、图片或背景）上的交互事件。可通过拖放编辑器或 HTML 编辑器（使用 [应用内 JavaScript API](./in-app-message-api)）进行添加。

<Frame caption="点击操作流程，展示 iOS 上的位置和推送权限提示">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/a800e8b-Click_Action.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=3aa66c522aa9ed079e096e3386c2bff9" alt="展示应用内消息点击操作如何在 iOS 上触发位置和推送权限提示的示意图" width="2574" height="1244" data-path="images/iam/a800e8b-Click_Action.png" />
</Frame>

## 点击操作类型

### URL

在设备默认浏览器中打开指定的 URL。在 [应用内 JS API](./in-app-message-api) 中映射到 `openUrl`。如需在应用内进行深度链接，请改用 **Custom Action ID**。

### 推送权限提示

显示原生 iOS 或 Android 推送权限提示。如果设备已订阅，则不会显示应用内消息。如果设备之前已被提示且拒绝，原生弹窗将要求用户在应用设置中启用推送通知。在 [应用内 JS API](./in-app-message-api) 中映射到 `triggerPushPrompt`。

### 位置权限提示

显示原生操作系统提示，请求位置跟踪权限。您的应用必须包含[位置跟踪权限](./mobile-sdk-reference#location)——设置详情请参见[位置选择加入提示](./location-opt-in-prompt)。在 [应用内 JS API](./in-app-message-api) 中映射到 `triggerLocationPrompt`。

### 发送结果

跟踪用户交互以用于分析。通过应用内消息发送的结果将显示为"未归属"，并以 `outcome_name : true` 格式在用户上设置[标签](./add-user-data-tags)。详情请参见[自定义结果](./custom-outcomes)。在 [应用内 JS API](./in-app-message-api) 中映射到 `sendOutcome`。

### 标记用户

根据用户的响应为其添加[标签](./add-user-data-tags)，可用于对用户进行分群以发送更有针对性的消息。在 [应用内 JS API](./in-app-message-api) 中映射到 `tagUser`。

### 自定义操作 ID

传递一个自定义值，当元素被点击时，应用可通过 [SDK IAM 点击监听器](./mobile-sdk-reference#addclicklistener-in-app) 读取该值。适用于以下场景：

* 将交互数据发送到您自己的服务器或分析供应商。
* [在应用内进行深度链接](./deep-linking)，导航到特定页面。

在 [应用内 JS API](./in-app-message-api) 中映射到 `addClickName`。

#### Collecting custom click actions

在任意图片或按钮块上设置 **Custom Action ID**，以识别哪个元素被点击。您的应用可通过 [SDK IAM 点击监听器](./mobile-sdk-reference#addclicklistener-in-app) 检测点击事件，并将数据发送到您的服务器、数据库或分析供应商。

<Accordion title="Example: create a poll" icon="square-poll-vertical">
  在多项选择应用内消息的每个按钮上设置唯一的 Action ID。当用户点击某个选项时，应用通过 [SDK IAM 点击监听器](./mobile-sdk-reference#addclicklistener-in-app) 检测到该操作，将响应发送到您的服务器，并可在稍后向用户展示汇总结果。

  除 Action ID 外，您也可以使用 **Tag** 来标识被点击的元素，并根据用户响应对其进行分群。
</Accordion>

***

## 相关指南

<Columns cols={2}>
  <Card title="Deep Linking" icon="link" href="./deep-linking">
    为推送和应用内消息设置自定义 URL Scheme 及应用特定路由。
  </Card>

  <Card title="In-app JavaScript API" icon="code" href="./in-app-message-api">
    HTML 应用内消息编辑器中点击操作方法的参考文档。
  </Card>

  <Card title="App Store rating example" icon="star" href="./example-app-store-review">
    从应用内消息触发应用商店评分的分步教程。
  </Card>

  <Card title="Target outdated app versions" icon="rotate" href="./app-version-update">
    提示用户更新应用。
  </Card>

  <Card title="Onboard users with banner in-app messages" icon="hand-wave" href="./example-create-a-tutorial">
    使用不遮挡应用界面的顶部和底部横幅应用内消息引导用户。
  </Card>
</Columns>

***

## 常见问题

### 能否为单个元素添加多个点击操作？

不能。每个元素（按钮、图片或背景）仅支持一个点击操作。如需触发多种行为，请使用 **Custom Action ID**，并通过 [SDK IAM 点击监听器](./mobile-sdk-reference#addclicklistener-in-app) 在应用内处理相应逻辑。

### 如何在应用内进行深度链接跳转到特定页面？

使用 **Custom Action ID** 点击操作，并通过 [SDK IAM 点击监听器](./mobile-sdk-reference#addclicklistener-in-app) 在应用内处理路由。**URL** 操作会在浏览器中打开链接，而非在应用内打开。完整设置请参见[深度链接](./deep-linking)。

### 为什么推送权限提示没有出现？

如果设备已订阅推送通知，带有推送权限提示点击操作的应用内消息将不会显示。测试前请在 OneSignal 控制台中验证用户的推送订阅状态。
