# Flutter SDK 快速入门

通过这个快速简单的示例开始使用 Pushwoosh Flutter SDK

## 前提条件

要将 Pushwoosh Flutter SDK 集成到您的应用中，您需要满足以下条件：

<TranslatedFragment id="prerequisites-plugins" />

## 下载示例项目

```bash
# 克隆 SDK 仓库并导航至示例项目
git clone https://github.com/Pushwoosh/pushwoosh-flutter

# 导航至示例目录
cd pushwoosh-flutter/Source/pushwoosh/example
```

## 配置项目

安装依赖项：

```bash
flutter pub get
```

打开 **lib/main.dart** 并更新 Pushwoosh.initialize 调用：

```dart
Pushwoosh.initialize({"app_id": "XXXXX-XXXXX"});
```

将 `app_id` 的值替换为您的 **Pushwoosh App Code**。

### iOS

###### 1. 安装依赖项

导航至 ios 目录并安装依赖项：

```bash
cd ios && pod install --repo-update
```

###### 2. 设置 Bundle Identifier

在 Xcode 中打开 **ios/Runner.xcworkspace** 文件。

为每个目标设置 **Bundle Identifier**：

- `Runner`：您的应用的包名。（例如 com.example.pushwoosh）
- `NotificationService`：您的应用的包名加上 `.NotificationServiceExtension`。（例如 com.example.pushwoosh.NotificationServiceExtension）
- `StopwatchWidgetExtension`：您的应用的包名加上 `.StopwatchWidget`。（例如 com.example.pushwoosh.StopwatchWidget）

###### 3. 设置 API Token

在您的 `ios/Runner/Info.plist` 文件中，将 `Pushwoosh_API_TOKEN` 键设置为 [Pushwoosh Device API Token](/zh/developer/api-reference/api-access-token/#device-api-token)



### Android

###### 1. 设置 google-services.json

将您的 `google-services.json` 文件复制到 **android/app** 目录

###### 2. 设置包名

打开 **android/app/build.gradle** 并将 **applicationId** 设置为您的应用的包名。（例如 `com.example.pushwoosh`）

###### 3. 设置 API Token

打开您的 **android/app/src/main/AndroidManifest.xml** 文件，并在 `<application>` 标签内添加以下元数据：

```xml title="AndroidManifest.xml"
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_PUSHWOOSH_DEVICE_API_TOKEN__" />
```
将 `__YOUR_PUSHWOOSH_DEVICE_API_TOKEN__` 替换为您的 [Pushwoosh Device API Token](/zh/developer/api-reference/api-access-token/#device-api-token)。


## 运行项目

1. 构建并运行项目。
2. 应用将有两个标签：“Actions” 和 “Settings”。导航至 **Settings** 标签。
3. 点击 **Register for Pushes** 按钮。
4. 授予推送通知权限。设备将在 Pushwoosh 注册。

## 发送推送通知

返回 Pushwoosh Control Panel 并向您注册的设备[发送推送通知](/zh/product/messaging-channels/push-notifications/send-push-notifications/one-time-push)。