自定义 Cordova 插件
前台推送通知
Anchor link to在后台接收推送时,直到用户点击推送通知前,不会触发任何事件。打开通知后,Pushwoosh 插件会触发 push-receive 和 push-notification 事件。
当在前台接收到推送时,插件会自动触发 push-receive 事件,并在通知中心创建一条通知。当这条通知被打开时,会触发 push-notification 事件。
您可以监听 push-receive 事件,以便在应用处于前台时立即对接收到的推送做出反应,例如更新应用当前页面的内容。另一方面,push-notification 用于响应通知点击事件,这需要用户交互,例如在您的应用内导航、触发新进程等。
要更改前台推送通知的外观,您可以使用 IOS_FOREGROUND_ALERT_TYPE 和 ANDROID_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 集成过程中遇到任何问题,我们很乐意听取您的意见。如果您遇到任何困难,请随时通过此表单与我们分享您的想法。