Phonegap-plugin-push 开启。('notification') 不触发
Phonegap-plugin-push's on.('notification') doesn't fire
我正在尝试在我的混合应用程序中实现推送通知,它是使用 reactjs 和 cordova 构建的,使用 phonegap-plugin-push。
我已经正确设置了所有内容(添加了插件,注册了 firebase,google-services.js 文件在正确的位置)。
我把它放在我的 index.js 文件中:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
// ReactDOM.render(<App />, document.getElementById('root'));
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers:
const startApp = () => {
ReactDOM.render(
<App />,
document.getElementById('root')
);
serviceWorker.unregister();
var push = window.PushNotification.init({
android:{}
});
console.log(push);
push.on('registration', function (data) {
console.log("on registration");
console.log(data);
});
push.on('notification', function (data) {
// console.log("notification received");
alert("Title:"+data.title+" Message:"+ data.message);
});
push.on('error', function (e) {
console.log(e.message)
});
}
if(!window.cordova) {
console.log("cordova is null");
startApp();
} else {
document.addEventListener('deviceready', startApp, false);
}
当我在 android 模拟器上 运行 应用程序,并使用 chrome 检查设备调试它时,我可以看到 on('registration') 被触发并且好好工作。但是当我尝试从 firebase 向设备发送通知时,没有任何反应。
这就是我撰写通知的方式:
*Notification title(optional): title
Notification text: test noti
Notification label: test noti
*Target
App com.allen.thomas.netdi //the package name that i registered
*Scheduling
i chose "send now"
*Conversion events(optional)
didn't do anything with this
*Additional options(optional)
//left the Android "Notification Channel" field blank
//For custom data I filled in the following keys-values
title Test Notification
body Please work!
badge 1
content-available 1
priority: high
sound: enabled
expires: 4 weeks
然后我点击发布。但什么也没发生。我不明白这里有什么问题?
你的包名和firebase中的项目匹配吗?
您是否在 Android Studio 中启用了 Android 支持存储库版本 47+?
参见:https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/INSTALLATION.md#android-details
看来我找到了解决办法。我需要做的就是在 on('notification) 的回调函数中添加这些代码行:
push.finish(function(){
console.log("notification received successfully");
})
它解决了我的问题。
我正在尝试在我的混合应用程序中实现推送通知,它是使用 reactjs 和 cordova 构建的,使用 phonegap-plugin-push。
我已经正确设置了所有内容(添加了插件,注册了 firebase,google-services.js 文件在正确的位置)。
我把它放在我的 index.js 文件中:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
// ReactDOM.render(<App />, document.getElementById('root'));
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers:
const startApp = () => {
ReactDOM.render(
<App />,
document.getElementById('root')
);
serviceWorker.unregister();
var push = window.PushNotification.init({
android:{}
});
console.log(push);
push.on('registration', function (data) {
console.log("on registration");
console.log(data);
});
push.on('notification', function (data) {
// console.log("notification received");
alert("Title:"+data.title+" Message:"+ data.message);
});
push.on('error', function (e) {
console.log(e.message)
});
}
if(!window.cordova) {
console.log("cordova is null");
startApp();
} else {
document.addEventListener('deviceready', startApp, false);
}
当我在 android 模拟器上 运行 应用程序,并使用 chrome 检查设备调试它时,我可以看到 on('registration') 被触发并且好好工作。但是当我尝试从 firebase 向设备发送通知时,没有任何反应。 这就是我撰写通知的方式:
*Notification title(optional): title
Notification text: test noti
Notification label: test noti
*Target
App com.allen.thomas.netdi //the package name that i registered
*Scheduling
i chose "send now"
*Conversion events(optional)
didn't do anything with this
*Additional options(optional)
//left the Android "Notification Channel" field blank
//For custom data I filled in the following keys-values
title Test Notification
body Please work!
badge 1
content-available 1
priority: high
sound: enabled
expires: 4 weeks
然后我点击发布。但什么也没发生。我不明白这里有什么问题?
你的包名和firebase中的项目匹配吗?
您是否在 Android Studio 中启用了 Android 支持存储库版本 47+? 参见:https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/INSTALLATION.md#android-details
看来我找到了解决办法。我需要做的就是在 on('notification) 的回调函数中添加这些代码行:
push.finish(function(){
console.log("notification received successfully");
})
它解决了我的问题。