![](/img/trans.png)
[英]iOS Swift App won't receive Push Notification sent by Parse Server
[英]Can't receive push notification from Parse server and ionic app (ios)
我遇到一個問題,我什至不知道是什么問題。
首先嘗試使用ios。
我正在從解析服務器開源發出推送通知。 我設置了解析服務器進行推送:
"push": {
"ios":{
"pfx": "/var/www..../Certificates.p12",
"passphrase": "...",
"bundleId": "com.xxxx.testPushNotification",
"production": false
}
}
我正在使用這個插件https://github.com/phonegap-build/PushPlugin 。 這是我的平台
Installed platforms:
ios 4.3.1
Available platforms:
amazon-fireos ~3.6.3 (deprecated)
android ~6.0.0
blackberry10 ~3.8.0
browser ~4.1.0
firefoxos ~3.6.3
osx ~4.0.1
webos ~3.7.0
和
cordova 6.4.0
這是app.js中的代碼
$("#app-status-ul").append('<li>registering ' + device.platform + '</li>');
pushNotification.register(
tokenHandler,
errorHandler,
{
"badge":"true",
"sound":"true",
"alert":"true",
"ecb":"onNotificationAPN"
});
// result contains any message sent from the plugin call
function successHandler (result) {
alert('result = ' + result);
}
// result contains any error description text returned from the plugin call
function errorHandler (error) {
alert('error = ' + error);
}
function onNotificationAPN (event) {
if ( event.alert )
{
navigator.notification.alert(event.alert);
}
if ( event.sound )
{
var snd = new Media(event.sound);
snd.play();
}
if ( event.badge )
{
pushNotification.setApplicationIconBadgeNumber(successHandler, errorHandler, event.badge);
}
}
function tokenHandler (result) {
// Your iOS push server needs to know the token before it can push to this device
// here is where you might want to send it the token for later use.
alert('device token = ' + result);
}
// fired when push notification is received
window.onNotification = function (e) {
navigator.notification.alert('Notification received: ' + JSON.stringify(e));
}
var pushNotification = window.plugins.pushNotification;
pushNotification.register(successHandler, errorHandler, {"channelName":"xxxx","ecb":"onNotification"});
function successHandler(result) {
console.log('registered###' + result.uri);
// send uri to your notification server
}
function errorHandler(error) {
console.log('error###' + error);
}
基本上,我可以管理服務器端,因為我發送了幾條消息,但實際上並沒有發送。
我設法得到了.p12和.pem,並且應用程序ID在應用程序和服務器端之間匹配。
我的問題在哪里? 幫助將不勝感激。
我自己找到了答案,希望對您有所幫助
內部deviceReady()
if(window.ParsePushPlugin){
ParsePushPlugin.getInstallationId(function(id) {
// note that the javascript client has its own installation id,
// which is different from the device installation id.
alert("device installationId: " + id);
}, function(e) {
alert('error');
});
ParsePushPlugin.getSubscriptions(function(subscriptions) {
alert(subscriptions);
}, function(e) {
alert('error');
});
ParsePushPlugin.subscribe('SampleChannel', function(msg) {
alert('OK');
}, function(e) {
alert('error');
});
ParsePushPlugin.unsubscribe('SampleChannel', function(msg) {
alert('OK');
}, function(e) {
alert('error');
});
ParsePushPlugin.on('receivePN', function(pn){
alert('yo i got this push notification:' + JSON.stringify(pn));
});
//在config.xml內部
<preference name="ParseAppId" value="xxxxxx" />
<preference name="ParseServerUrl" value="http://xxxxx:1389/parse" />
<preference name="ParseGcmSenderId" value="xxxxxx" />
<preference name="ParseMultiNotifications" value="true" />
插件: https : //github.com/taivo/parse-push-plugin
注意:在服務器和應用程序之間設置appId(應用程序捆綁包)相同,並確保應用程序的根文件夾中有p12和pem文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.