跳到内容

Cordova SDK 基本集成指南

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

先决条件

Anchor link to

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

集成步骤

Anchor link to

1. 添加 Pushwoosh Cordova SDK 依赖

Anchor link to

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

Terminal window
cordova plugin add pushwoosh-cordova-plugin

2. Cordova SDK 初始化

Anchor link to

在您的 index.js 文件的根组件中:

  • 初始化 Pushwoosh SDK。
  • 在您的初始化逻辑中调用 registerDevice() 以注册推送通知。
index.js
function onDeviceReady() {
var pushwoosh = cordova.require("pushwoosh-cordova-plugin.PushNotification");
pushwoosh.onDeviceReady({
appid: "__YOUR_APP_ID__",
projectid: "__YOUR_FCM_SENDER_ID__"
});
pushwoosh.registerDevice(
function(status) {
var pushToken = status.pushToken;
// Handle successful registration
},
function(status) {
// 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 SDK 中,有两个事件监听器,用于处理推送通知:

  • 当收到推送通知时,会触发 onPushReceived 事件
  • 当用户打开通知时,会触发 onPushAccepted 事件

您应该在应用程序启动时,在 SDK 初始化后立即设置这些事件监听器:

index.js
class PushwooshNotificationHandler {
setupPushListeners() {
document.addEventListener('push-receive',
function(event) {
console.log("Push received: " + event.notification.message);
}
);
document.addEventListener('push-notification',
function(event) {
console.log("Push accepted: " + event.notification.message);
}
);
}
}

用户配置

Anchor link to

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

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

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

class UpdateUser {
afterUserUpdateProfile(user) {
// Set list of favorite categories
pushwoosh.setTags({
"favorite_categories": user.getFavoriteCategoriesList()
});
// Set payment information
pushwoosh.setTags({
"is_subscribed": user.isSubscribed(),
"payment_status": user.getPaymentStatus(),
"billing_address": user.getBillingAddress()
});
}
}

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

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

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