Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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 修改Android推送通知(GCN)中操作栏中的应用图标_Php_Android_Push Notification_Coronasdk - Fatal编程技术网

Php 修改Android推送通知(GCN)中操作栏中的应用图标

Php 修改Android推送通知(GCN)中操作栏中的应用图标,php,android,push-notification,coronasdk,Php,Android,Push Notification,Coronasdk,我想在远程通知中添加一个图像,当通过谷歌云通知发送时,这些图像会被发送到应用程序中 我通过PHP将通知发送到Google。这本身似乎与我找到的文档不太匹配,文档告诉我发送一个“message”参数,而实际上应用程序上显示的是“alert” 下面是我的PHP代码: public function send_notification($registation_ids, $message) { // Set POST variables $url = 'https://android

我想在远程通知中添加一个图像,当通过谷歌云通知发送时,这些图像会被发送到应用程序中

我通过PHP将通知发送到Google。这本身似乎与我找到的文档不太匹配,文档告诉我发送一个“message”参数,而实际上应用程序上显示的是“alert”

下面是我的PHP代码:

public function send_notification($registation_ids, $message) { 
    // Set POST variables
    $url = 'https://android.googleapis.com/gcm/send';

    echo 'Message: '.$message.'<br>';

    $fields = array(
        'registration_ids' => $registation_ids,
        'data' => array(
            'message' => $message,
            'alert' => $message
        )
    );

    $headers = array(
        'Authorization: key=' . GOOGLE_API_KEY,
        'Content-Type: application/json'
    );
    // Open connection
    $ch = curl_init();

    // Set the url, number of POST vars, POST data
    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    // Disabling SSL Certificate support temporarly
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

    // Execute post
    $result = curl_exec($ch);
    if ($result === FALSE) {
        return curl_error($ch);
    }

    // Close connection
    curl_close($ch);
    return $result;
}
公共函数发送通知($registration\u id,$message){
//设置POST变量
$url='1https://android.googleapis.com/gcm/send';
回显“Message:”.$Message.“
”; $fields=数组( “注册\u ID”=>$registration\u ID, “数据”=>数组( 'message'=>$message, “警报”=>$message ) ); $headers=数组( “Authorization:key=”。GOOGLE_API_key, '内容类型:应用程序/json' ); //开放连接 $ch=curl_init(); //设置url、POST变量数和POST数据 curl_setopt($ch,CURLOPT_URL,$URL); curl_setopt($ch,CURLOPT_POST,true); curl_setopt($ch,CURLOPT_HTTPHEADER,$headers); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //暂时禁用SSL证书支持 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($fields)); //执行职务 $result=curl\u exec($ch); 如果($result==FALSE){ 返回旋度误差($ch); } //密切联系 卷曲关闭($ch); 返回$result; }
我本以为我只需要发送一个图标和负载,但我找不到任何文档来支持这一点

另一种选择是在应用程序本身上有图标,然后调用负载中的变量来引用该图标,但也找不到任何支持该图标的文档

作为补充说明,该应用程序是使用Corona SDK构建的,但我不确定这有多重要


任何帮助都将不胜感激。谢谢

只要发送的数据不超过4K,您就可以从服务器发送所需的任何数据。 至于您应该发送
消息
还是
警报
,这完全取决于客户端中的代码,因为这是查找这些参数并使用其值的代码


要将图标直接与有效负载一起发送,必须将图像编码为字符串,并将该字符串包含在有效负载中(假设它是足够小的图像)。你的应用程序必须解码该字符串才能显示图标。您的另一个选项,发送对图标的引用,更有意义。同样,必须处理该引用的是客户端(应用程序)代码。

显示Corona在项目根目录中查找特定文件名并使用该文件名。有3种文件名格式,每种格式都有不同DPI的几个版本。据我所知,您目前无法根据警报的有效负载更改此图标

白色,适用于Android 3.0+

IconNotificationDefault-ldpi-v11.png
IconNotificationDefault-mdpi-v11.png
IconNotificationDefault-hdpi-v11.png
IconNotificationDefault-xhdpi-v11.png   
灰色,适用于Android 2.3-3.0

IconNotificationDefault-ldpi-v9.png
IconNotificationDefault-mdpi-v9.png
IconNotificationDefault-hdpi-v9.png
IconNotificationDefault-xhdpi-v9.png
黑色,其他所有颜色

IconNotificationDefault-ldpi.png
IconNotificationDefault-mdpi.png
IconNotificationDefault-hdpi.png
IconNotificationDefault-xhdpi.png

好啊这是有道理的,但作为一个Corona应用程序,我似乎没有那种控制能力。也就是说,这不是唯一的问题,因此必须有一种方法来更改所使用的图标。目前是警告符号(中间带感叹号的三角形),看起来非常错误。@mikemike您没有权限访问显示通知的代码吗?我不熟悉Corona,所以我不确定您正在开发哪个部分以及使用哪个部分。看起来您不能临时更改图标,但可以从默认设置更改它。有一个特定的文件名是在编译的项目中查找的。不过还是谢谢你