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

# 使用应用内消息请求位置权限

> 在触发原生 Android 或 iOS 位置权限请求之前，使用 OneSignal 中的软预提示引导用户在您的移动应用中启用位置跟踪。

通过使用 OneSignal 应用内消息作为软预提示，在显示必需的原生系统级位置权限对话框之前，轻松从用户那里请求位置访问权限。这提高了选择加入率，并让您更好地控制何时以及如何询问。或者，您可以使用我们的[移动 SDK 位置方法](./mobile-sdk-reference#location)直接触发系统提示。

***

## 要求

在创建应用内消息之前：

* 为您的应用添加位置跟踪权限（适用于 Android 和 iOS）。
  * 请参阅我们的[移动 SDK 位置参考](./mobile-sdk-reference#location)获取特定平台的设置说明。
* 在您的应用代码中启用与 OneSignal 的位置共享。

***

## 创建您的消息

<Steps>
  <Step title="创建您的消息">
    在 OneSignal 仪表板中，转到：**消息 > 应用内 > 新应用内**
  </Step>

  <Step title="受众">
    * 如果所有用户都应该看到提示，请选择**显示给所有用户**。
    * 否则，定向特定细分。
  </Step>

  <Step title="消息设计">
    * 清晰解释为什么位置访问对用户有益。例如，“启用位置以接收相关的本地更新。”
    * 简洁但具体，以提高选择加入的可能性。

    <Frame caption="显示应用内块和在预览旁边添加点击操作的能力的图像">
      <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/d79589d-iam-setup.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=dfc599957a14fae1da44feaca697cc8d" width="1922" height="1650" data-path="images/docs/d79589d-iam-setup.png" />
    </Frame>
  </Step>
</Steps>

***

## 添加位置权限提示点击操作

<Steps>
  <Step title="添加按钮或图像">
    添加一个带有明确行动召唤的按钮或图像（如"启用位置"）。
  </Step>

  <Step title="添加点击操作">
    在选项中：

    * 点击**添加点击操作**
    * 选择**位置权限提示**

    点击时，OneSignal 将触发原生的、必需的系统级位置提示。

    **如果位置已经启用，消息将不会显示以避免不必要的提示。**

    <Info>
      Android 和 iOS 都限制系统级提示显示的频率。使用这种软预提示有助于避免这些限制，并允许在需要时重复尝试。
    </Info>

    <Frame caption="显示应用内块和添加点击操作能力的图像">
      <img src="https://mintcdn.com/onesignal/_KaXe4GQkxsEfa17/images/docs/3ee94da-iam-setup-add-buttons.png?fit=max&auto=format&n=_KaXe4GQkxsEfa17&q=85&s=bea5041690d177a6b2c74b970bac178d" width="561" height="767" data-path="images/docs/3ee94da-iam-setup-add-buttons.png" />
    </Frame>
  </Step>
</Steps>

***

## 触发应用内消息

您可以控制何时以及如何显示提示。

### 选项 1：基于时间的触发器

在用户在应用中停留一定时间后显示消息（如 30 秒后）。

<Frame caption="显示会话应用内触发器的图像。">
  <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/fb26c9cc44f0ff633869613177c204987850f8a45de908f153387b6c18211e3d-Screenshot_2025-04-03_at_6.34.31_PM.png?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=aa5c748b14350c0c35165194daf0b567" width="1566" height="688" data-path="images/docs/fb26c9cc44f0ff633869613177c204987850f8a45de908f153387b6c18211e3d-Screenshot_2025-04-03_at_6.34.31_PM.png" />
</Frame>

### 选项 2：编程触发器

通过 SDK 精确控制提示显示的时间：

<Steps>
  <Step title="将触发代码添加到应用中。">
    使用我们 SDK 的 [`addTrigger` 方法](./mobile-sdk-reference#in-app-messages)设置一个键（如 `location_prompt`）和值（如 `true`）。然后在您的应用中随时调用它。
  </Step>

  <Step title="将触发器添加到消息">
    在您的应用内消息设置中设置相同的触发器键（`location_prompt`）和值（`true`）。

    <Frame caption="显示编程应用内触发器的图像。">
      <img src="https://mintcdn.com/onesignal/6tscVAtiSqz353kV/images/docs/a1073246e17c826da317ef34f1fb4b4171e924a2de9f199cef9c154a0470c9aa-Screenshot_2025-04-03_at_6.35.33_PM.png?fit=max&auto=format&n=6tscVAtiSqz353kV&q=85&s=aa22c76661dc1cbf6ddac693fd471a1a" width="1566" height="742" data-path="images/docs/a1073246e17c826da317ef34f1fb4b4171e924a2de9f199cef9c154a0470c9aa-Screenshot_2025-04-03_at_6.35.33_PM.png" />
    </Frame>
  </Step>
</Steps>

***

## 设置消息频率

为避免对用户进行垃圾邮件：

* 选择**多次**
* 设置显示消息的次数
* 设置每次尝试之间的间隔

示例设置：最多显示 5 次，每次尝试之间间隔 4 周

这允许每月提醒最多 5 个月，在持久性和用户体验之间取得平衡。

<Frame caption="重复提示的示例调度配置。">
  <img src="https://mintcdn.com/onesignal/6tscVAtiSqz353kV/images/docs/9e87626b6069826d65baa160acf278f9ada4724ea1a4155b63a2bd3be9e1fc64-Screenshot_2025-04-03_at_7.02.24_PM.png?fit=max&auto=format&n=6tscVAtiSqz353kV&q=85&s=00f77c150cdb1f667aef561d09cd5998" width="1566" height="722" data-path="images/docs/9e87626b6069826d65baa160acf278f9ada4724ea1a4155b63a2bd3be9e1fc64-Screenshot_2025-04-03_at_7.02.24_PM.png" />
</Frame>

***

## 最佳实践

* 始终向用户解释位置访问的好处。
* 使用细分或触发器以避免在不合适的时间询问。
* 预提示提高选择加入率并避免操作系统限制。
* 在触发应用内消息之前，确保在您的应用中正确配置了位置权限。

***

<Check>
  您将开始在用户和订阅页面中看到被跟踪的位置点。

  创建[基于位置触发的消息](./location-triggered-event)。
</Check>

***
