跳到内容

自定义 Cordova 插件

前台推送通知

Anchor link to

在后台接收推送时,直到用户点击推送通知前,不会触发任何事件。打开通知后,Pushwoosh 插件会触发 push-receivepush-notification 事件。

当在前台接收到推送时,插件会自动触发 push-receive 事件,并在通知中心创建一条通知。当这条通知被打开时,会触发 push-notification 事件。

您可以监听 push-receive 事件,以便在应用处于前台时立即对接收到的推送做出反应,例如更新应用当前页面的内容。另一方面,push-notification 用于响应通知点击事件,这需要用户交互,例如在您的应用内导航、触发新进程等。

要更改前台推送通知的外观,您可以使用 IOS_FOREGROUND_ALERT_TYPEANDROID_FOREGROUND_PUSH 首选项:

IOS_FOREGROUND_ALERT_TYPE

  • NONE – 应用在前台时不显示通知(默认)
  • BANNER – 显示横幅应用内提醒
  • ALERT – 提醒通知

ANDROID_FOREGROUND_PUSH

  • true – 不自动处理前台推送
  • false – 自动处理前台推送(默认)

示例:

cordova plugin add pushwoosh-cordova-plugin --variable IOS_FOREGROUND_ALERT_TYPE="ALERT" --variable ANDROID_FOREGROUND_PUSH="true"

自定义推送声音

Anchor link to

要在 Android 上启用自定义通知声音,请将声音文件放置在 www/res 文件夹中,并在 config.xml 中指定每个声音:

<?xml version=‘1.0’ encoding=‘utf-8’?>
<widget id="YOUR_ID" version="1.0.0" xmlns="http://www.w3.org/ns/widgets” xmlns:cdv=“http://cordova.apache.org/ns/1.0">
...
<platform name="android">
<allow-intent href="market:*" />
...
<-- Add this line for each sound -->
<resource-file src="www/res/push.wav" target="res/raw/push.wav" />
</platform>
</widget>

这些声音将在 Send Push 面板的 Sound 下拉菜单中可用。

在 iOS 上,声音文件尚未自动与 Pushwoosh 应用程序关联,但可以手动使用,例如 www/res/sound_name.wav

自定义推送图标

Anchor link to

在 Android 上,可以通过使用 pw_notification 作为图标的资源名称来本地自定义推送通知图标(参见示例 1 2);或者通过在 Send Push 面板的 Icon 设置中引用任何资源名称来远程自定义。

自定义推送数据

Anchor link to

可以使用 Send Push 面板中的 Action 设置发送自定义推送数据。要接收和处理这些数据,请使用以下代码:

document.addEventListener('push-notification',
function(event) {
var message = event.notification.message; // Push message
var userData = event.notification.userdata; // Custom push data
if (userData) {
// handle custom push data here
}
}
);

控制日志级别

Anchor link to

为了帮助调试和集成,SDK 默认会将所有请求打印到控制台。当您准备好进行生产构建时,请将 LOG_LEVEL 变量设置为以下值之一:

  • NONE – SDK 不输出日志
  • ERROR – 仅在控制台中显示错误
  • WARNING – 显示警告
  • INFO – 显示信息性消息
  • DEBUG – 显示所有内容,包括调试信息(默认)

示例:

cordova plugin add pushwoosh-cordova-plugin --variable LOG_LEVEL="INFO"

深度链接

Anchor link to

我们推荐使用 https://github.com/EddyVerbruggen/Custom-URL-scheme
为 Cordova 设置深度链接非常简单,并且它能与 Pushwoosh 的深度链接功能开箱即用。

您可以在本指南插件文档中找到安装和使用说明。

富媒体 JS 桥

Anchor link to

您可以通过 javascript 接口从 Cordova WebView 中的富媒体调用您的 JS 函数。 来自富媒体的调用必须采用以下格式:

<interface>.callFunction(‘<function_name>’, <params_string>)

示例:

1. 创建一个带有 javascript 调用的富媒体:

testBridge.callFunction('testFunction', JSON.stringify({'param1' : 1, 'param2':'test'}))

2. 将 javascript 接口添加到您的项目中:

pushNotification.addJavaScriptInterface('testBridge');

3. 添加函数:

function testFunction(params) {
alert("Bridge is working! " + params.param1 + " " + params.param2);
}

将 Pushwoosh 插件与其他 FCM 服务一起使用

Anchor link to

如果您的应用使用了其他依赖 firebase-messaging 的插件,可能会导致冲突,或者其中一个插件无法正常工作。要解决此冲突,您可以添加一个自定义的 FirebaseMessagingService 类,该类将在插件之间路由推送通知。Pushwoosh Cordova 插件包含此类的一个模板,您可以直接使用它来强制所有通知通过 Pushwoosh 处理程序,或者修改它以处理来自其他提供商的通知。要启用该模板,请取消插件 plugin.xml 中以下行的注释:

<service android:name="com.pushwoosh.plugin.pushnotifications.CustomFirebaseMessagingService" android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>

与我们分享您的反馈

Anchor link to

您的反馈有助于我们创造更好的体验,因此如果您在 SDK 集成过程中遇到任何问题,我们很乐意听取您的意见。如果您遇到任何困难,请随时通过此表单与我们分享您的想法。