Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用带有Phonegap的Google Firebase推送通知_Php_Android_Cordova_Google Cloud Messaging - Fatal编程技术网

Php 使用带有Phonegap的Google Firebase推送通知

Php 使用带有Phonegap的Google Firebase推送通知,php,android,cordova,google-cloud-messaging,Php,Android,Cordova,Google Cloud Messaging,我正在尝试制作一个简单的测试应用程序来测试推送通知 我已经安装了插件“phonegap plugin push”(),并遵循了所有安装说明 我收到一个注册id ondeviceready,当我使用php脚本向该id发送通知时,它会从google api返回一个成功响应,但是移动设备上没有显示任何通知 对可能出现的问题有什么建议吗 index.html <!DOCTYPE html> <html> <head> <title>Push dem

我正在尝试制作一个简单的测试应用程序来测试推送通知

我已经安装了插件“phonegap plugin push”(),并遵循了所有安装说明

我收到一个注册id ondeviceready,当我使用php脚本向该id发送通知时,它会从google api返回一个成功响应,但是移动设备上没有显示任何通知

对可能出现的问题有什么建议吗

index.html

<!DOCTYPE html>
<html>
<head>
    <title>Push demo</title>
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript">
        document.addEventListener("deviceready", onDeviceReady, false);

        function onDeviceReady() {
            var push = PushNotification.init({ "android": {"senderID": "my sender id"}});
            push.on('registration', function(data) {
                console.log(data.registrationId);
            });

            push.on('notification', function(data) {
                console.log(data.title + " Message: " + data.message);
            });

            push.on('error', function(e) {
                console.log(e);
            });
        }
    </script>
</head>
<body>
    <h1>Push Notification Example</h1>
</body>
</html>
不再工作

是新的GCM

在我的应用程序中,我使用Android/iOS发送推送通知

您可以阅读以了解如何从服务器端发送推送通知。

不再有效

是新的GCM

在我的应用程序中,我使用Android/iOS发送推送通知


您可以阅读以了解如何从服务器端发送推送通知。

我尝试了几种方法,尝试了“cordova plugin firebase”插件和“cordova plugin fcm”,但我从两个插件中得到了一个相同的错误(不记得确切的错误消息),但问题是我只添加了“google services.json”(android)我从firebase控制台而不是“GoogleService Info.plist”(iOS)获取的项目的根目录

然而,我最终还是使用了插件“phonegap插件推送”。我用phonegaps推送模板重新创建了这个项目,突然它似乎开始工作了


如果您正在为iOS设置推送通知,请不要忘记在firebase控制台中上载推送证书,如果您正在为iOS启用gcm推送。

我尝试了几种方法,尝试了“cordova plugin firebase”插件和“cordova plugin fcm”,但两个插件都出现了相同的错误(不记得确切的错误消息)但是问题是,我只在项目的根目录中添加了“googleservices.json”(android),这是我从firebase控制台获得的,而不是“GoogleService Info.plist”(iOS)

然而,实际上我最终使用了插件“phonegap插件推送”。我用phonegaps推送模板重新创建了这个项目,突然它似乎起了作用


如果您正在为iOS设置推送通知,如果您正在为iOS启用gcm推送,请不要忘记在firebase控制台中上载推送证书。

我使用FCM,但使用gcm插件(phonegap插件推送)我使用了相同的设置,我在上面写道,唯一不同的是我使用phonegaps推送模板重新安装了我的应用程序。我在Firebase控制台中为iOS激活了GCM推送。我使用FCM,但使用GCM插件(phonegap插件推送)我使用了相同的设置,我在上面写道,唯一不同的是我使用phonegaps推送模板重新安装了我的应用程序。我在Firebase控制台中激活了用于iOS的GCM推送。
<?php

define('API_ACCESS_KEY', 'secret key here');

$registrationIds = array(
    'long device id here'
);

$msg = array(
    'message' => 'Test msg',
    'title' => 'Test title',
    'subtitle' => 'Test subtitle',
    'vibrate' => 1,
    'sound' => 1
);

$fields = array(
    'registration_ids' => $registrationIds,
    'data' => $msg
);

$headers = array(
    'Authorization: key=' . API_ACCESS_KEY,
    'Content-Type:application/json'
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://android.googleapis.com/gcm/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;

?>
{"multicast_id":xxxxxx,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:xxxxxxxxxx"}]}