跳到内容

Capacitor SDK 基本集成指南

本节包含有关如何将 Pushwoosh Capacitor SDK 集成到您的应用程序中的信息。

先决条件

Anchor link to

要将 Pushwoosh Capacitor SDK 集成到您的应用程序中,您需要以下内容:

集成步骤

Anchor link to

1. 添加 Pushwoosh Capacitor SDK 依赖项

Anchor link to

将 Pushwoosh Capacitor SDK 依赖项添加到您的项目:

Terminal window
npm install pushwoosh-capacitor-plugin

同步 Capacitor 配置:

Terminal window
npx cap sync

2. Capacitor SDK 初始化

Anchor link to

在您的主 JavaScript 文件中,导入并初始化 Pushwoosh SDK:

index.js
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Initialize the SDK
Pushwoosh.onDeviceReady({
appid: "__YOUR_APP_CODE__",
projectid: "__YOUR_FCM_SENDER_ID__"
});
// Register for push notifications
Pushwoosh.registerDevice()
.then(result => {
console.log("Push token:", result.pushToken);
// Handle successful registration
})
.catch(error => {
console.error("Failed to register device:", error);
// Handle registration error
});

其中:

  • __YOUR_APP_ID__ 是来自 Pushwoosh 控制面板的应用程序代码。
  • __YOUR_FCM_SENDER_ID__ 是来自 Firebase Console 的 Firebase 项目编号。

3. iOS 原生设置

Anchor link to

3.1 功能

Anchor link to

要在您的项目中启用推送通知,您需要添加某些功能。

在 Signing & Capabilities 部分,添加以下功能:

  • Push Notifications
  • Background Modes。添加此功能后,勾选 Remote notifications 复选框。

如果您打算使用 Time Sensitive Notifications (iOS 15+),也请添加 Time Sensitive Notifications 功能。

3.2 Info.plist

Anchor link to

在您的 Runner/Info.plist 中,将 __PUSHWOOSH_DEVICE_API_TOKEN__ 键设置为 Pushwoosh Device API Token

info.plist
<key>Pushwoosh_API_TOKEN</key>
<string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>

3.3 消息送达跟踪

Anchor link to

您必须向您的项目添加一个 Notification Service Extension 目标。这对于准确的送达跟踪和 iOS 上的 Rich Media 等功能至关重要。

请遵循 原生指南的步骤 来添加扩展目标及其所需的 Pushwoosh 代码。

4. Android 原生设置

Anchor link to

4.1 安装依赖项

Anchor link to

确保所需的依赖项和插件已添加到您的 Gradle 脚本中:

将 Google Services Gradle 插件添加到您的项目级 build.gradle 依赖项中:

android/build.gradle
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
}

在您的应用级 build.gradle 文件中应用该插件:

app/build.gradle
apply plugin: 'com.google.gms.google-services'

4.2 添加 Firebase 配置文件

Anchor link to

google-services.json 文件放入您项目目录中的 android/app 文件夹。

4.3 添加 Pushwoosh 元数据

Anchor link to

在您的 main/AndroidManifest.xml 中,在 <application> 标签内添加 Pushwoosh Device API Token

AndroidManifest.xml
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />

重要提示: 请确保在您的 Pushwoosh 控制面板中授予令牌对正确应用程序的访问权限。 了解更多

5. 运行项目

Anchor link to
  1. 构建并运行项目。
  2. 转到 Pushwoosh 控制面板并 发送推送通知
  3. 您应该会在应用程序中看到通知。

扩展集成

Anchor link to

在此阶段,您已经集成了 SDK,可以发送和接收推送通知。现在,让我们探索核心功能。

推送通知事件监听器

Anchor link to

在 Pushwoosh Capacitor SDK 中,有两个用于处理推送通知的回调方法:

  • 当收到推送通知时,会触发 pushReceivedCallback
  • 当用户打开通知时,会触发 pushOpenedCallback

您应该在 SDK 初始化后立即设置这些回调:

index.js
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Set up push received callback
await Pushwoosh.pushReceivedCallback((notification, err) => {
if (err) {
console.error("Failed to process received notification:", err);
} else {
console.log("Push received:", JSON.stringify(notification));
// Handle the received notification
}
});
// Set up push opened callback
await Pushwoosh.pushOpenedCallback((notification, err) => {
if (err) {
console.error("Failed to process opened notification:", err);
} else {
console.log("Push opened:", JSON.stringify(notification));
// Handle the opened notification
}
});

用户配置

Anchor link to

通过关注个人用户行为和偏好,您可以提供个性化内容,从而提高用户满意度和忠诚度。

import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class Registration {
async afterUserLogin(user) {
// Set user ID
Pushwoosh.setUserId(user.getId);
// Setting additional user information as tags for Pushwoosh
await Pushwoosh.setTags({
"age": user.getAge(),
"name": user.getName(),
"last_login": user.getLastLoginDate()
});
}
}

标签是分配给用户或设备的键值对,允许根据偏好或行为等属性进行细分,从而实现有针对性的消息传递。

import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class UpdateUser {
async afterUserUpdateProfile(user) {
// Set list of favorite categories
await Pushwoosh.setTags({
"favorite_categories": user.getFavoriteCategoriesList()
});
// Set payment information
await Pushwoosh.setTags({
"is_subscribed": user.isSubscribed(),
"payment_status": user.getPaymentStatus(),
"billing_address": user.getBillingAddress()
});
}
}

事件是应用程序中可以跟踪的特定用户操作或发生,用于分析行为并触发相应的消息或操作。

import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class Registration {
// Track login event
afterUserLogin(user) {
Pushwoosh.postEvent("login", {
"name": user.getName(),
"last_login": user.getLastLoginDate()
});
}
// Track purchase event
afterUserPurchase(product) {
Pushwoosh.postEvent("purchase", {
"product_id": product.getId(),
"product_name": product.getName(),
"price": product.getPrice(),
"quantity": product.getQuantity()
});
}
}

故障排除

Anchor link to

如果您在集成过程中遇到任何问题,请参阅 支持和社区 部分。