Xamarin中的后台推送通知

Aph*_*ire 6 android push-notification ios xamarin firebase-cloud-messaging

请考虑以下问题:

我正在使用以下插件为Xamarin执行推送通知,我试图在iOS和Androids上运行.

https://github.com/CrossGeeks/FirebasePushNotificationPlugin

我还使用以下PHP代码从网站向设备发送推送通知.

$fields = array
(
    'to' => $ID->notification_token,
    "content_available" => true,
    'priority'=>10,
    'notification' => array('title' => 'You have a new message', 'body' => 'Hooray', 'sound'=>'default', 'vibration'=>'default'),
);

$headers = array
(
    'Authorization: key=' . PUSH_NOTIFICATION_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;
Run Code Online (Sandbox Code Playgroud)

现在问题出现在iOS上我发现推送通知是可靠的并且当应用程序在前台时运行得很好,但是一旦我将它背景(或锁定屏幕),它们就会停止通过直到我再次前景,然后在后台发送的所有通知都会立即通过.

info.plist根据插件"入门"指南启用了我的后台进程.

我试图改变content_availiablecontent-availiable,也将其移动到通知阵列,它的值也设定为true,'true',1'1'

我也尝试添加"alert" => ""通知和整体有效负载,但是我仍然无法在前台解锁状态之外使其工作.

我还注意到在实际通知列表中没有任何东西触发(从屏幕顶部拉下来),我知道正在接收通知的唯一方法是播放某个声音文件并在调试中写入登录.

任何帮助将不胜感激,谢谢你的时间.

小智 5

确保您的JSON格式的消息有{"content-available" : "1", "alert" : ""},如果你想让它在iOS上显示时在后台没有运行属性。

对于Android,推送通知确实无法100%实现,存在特定于设备的障碍可能会阻止您的通知显示。

Firebase上可能有“测试发送”功能(到目前为止,我仅使用过Azure Push Hub),因此您可以尝试查看消息Json是否配置正确。