Cordova android push-уведомление index.js и PHP-скрипт - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь отправить push-сообщения всем пользователям приложения для Android, созданного из Windows cordova версии 8.1.2 (cordova-lib@8.1.1),

Я могу отправить тестовое сообщение с консоли Firebase Google, что означает, что я все настроил правильно. На заблокированном экране моего телефона с Android обычно выводилось push-сообщение в виде уведомления.

Когда я пытаюсь отправить push-сообщение из php-скрипта, я не получаю push-уведомление. Этот php-скрипт раньше работал с предыдущей версией приложения, но почему-то он перестал работать.

Ниже приведены мой код и скрипт:

config.xml

xml version='1.0' encoding='utf-8'?>
<widget id="com.testapp" version="1.20" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.20">
    <name>App name</name>
    <description>
        My first app
    </description>
    <author email="myemail" href="http://somewebsite">
        Larry
    </author>
    <content src="index.html" />
    <plugin name="cordova-plugin-whitelist" spec="1" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
    </platform>
    <icon src="www/img/icon.png" />
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
    </platform>
    <plugin name="phonegap-plugin-push" spec="https://github.com/phonegap/phonegap-plugin-push">
        <variable name="ANDROID_SUPPORT_V13_VERSION" value="27.+" />
        <variable name="FCM_VERSION" value="17.0.+" />
        <variable name="SENDER_ID" value="123456789" />
    </plugin>
    <engine name="android" spec="^7.1.1" />
</widget>

index.js

var app = {
    // Application Constructor
    initialize: function() {
        document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
    },
    onDeviceReady: function() {
        this.receivedEvent('deviceready');
        PushNotification;
    },

    // Update DOM on a Received Event
    receivedEvent: function(id) {
        var parentElement = document.getElementById(id);
        var listeningElement = parentElement.querySelector('.listening');
        var receivedElement = parentElement.querySelector('.received');

        listeningElement.setAttribute('style', 'display:none;');
        receivedElement.setAttribute('style', 'display:block;');

        console.log('Received Event: ' + id);
    },
    var push = PushNotification.init({
        android: {
            "senderID": "123456789"
        },
        browser: {
            pushServiceURL: 'http://push.api.phonegap.com/v1/push'
        },
        ios: {
            alert: "true",
            badge: "true",
            sound: "true"
        },
        windows: {}
    });

    push.on('registration', function(data) {
        // data.registrationId 
        //store this in your server for future use
    });

    push.on('notification', function(data) {
        data.message,
        data.title,
        data.count,
        data.sound,
        // data.image,
        // data.additionalData
    });

    push.on('error', function(e) {
        // e.message
    });
};

app.initialize();

php script

<?php
define( 'API_ACCESS_KEY', 'AAAAAAAAAAAAAAAAAAA');				

$fields = array (
    'to' => '/topics/alert',
    'data'=> array( 'title' => 'Just a test', 'message' => 'Hello world', 'content-available' => '1' ),       	      
);
	
$headers = array (
    'Authorization: key=' . API_ACCESS_KEY,
    'Content-Type: application/json'
);

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
$result = curl_exec($ch );
curl_close( $ch );
echo $result;
?>

Что мне не хватает? Я должен добавить следующее в файл index.js? Пробовал, но это не сработало.

    android: {
        "senderID": "123456789",
        "topics" : ['alert'] // add this line
    },
...