Php 修改Android推送通知(GCN)中操作栏中的应用图标
我想在远程通知中添加一个图像,当通过谷歌云通知发送时,这些图像会被发送到应用程序中 我通过PHP将通知发送到Google。这本身似乎与我找到的文档不太匹配,文档告诉我发送一个“message”参数,而实际上应用程序上显示的是“alert” 下面是我的PHP代码: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
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,所以我不确定您正在开发哪个部分以及使用哪个部分。看起来您不能临时更改图标,但可以从默认设置更改它。有一个特定的文件名是在编译的项目中查找的。不过还是谢谢你