如何在Android和iOS设备中使用具有默认声音的AWS SNS在Laravel中发送推送通知?

Roo*_*Doo 5 laravel aws-sdk

我有类似下面的代码发送推送通知.它被发送但通知时没有声音.

$sns = App::make('aws')->createClient('sns');

$sns->publish(array(
'TargetArn' => ‘arn:aws:sns:us-east-1:757730885501:endpoint/APNS/…..’,
       'Message' => ‘Test message’
));
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?!

sug*_*una 5

试试这个,

对于iOS设备,请使用这样的

$apns_payload = json_encode(array("aps" => array("alert" => "This is a test message", "sound" => 'default')));
$message = json_encode(array( "default" => "This is a test message", "APNS" => $apns_payload));
Run Code Online (Sandbox Code Playgroud)

对于Android设备,请使用这样的

$gcm_payload = json_encode(array("data" => array("message" => "This is a test message", "sound" => 'default')));
$message = json_encode(array("default" => "This is a test message", "GCM" => $gcm_payload));
Run Code Online (Sandbox Code Playgroud)

最后,使用您的AWS SNS设备ARN发布,如下所示,TargetArn会根据设备令牌和平台进行更改

如果iOS,

$target_arn = "arn:aws:sns:us-east-1:757730885501:endpoint/APNS/.....";
Run Code Online (Sandbox Code Playgroud)

如果是Android,

$target_arn = "arn:aws:sns:us-east-1:757730885501:app/GCM/.....";

$sns->publish(array(
  'TargetArn' => $target_arn,
  'Message' => $message,
  'MessageStructure' => 'json'
));
Run Code Online (Sandbox Code Playgroud)

如果您需要在设备中播放默认声音,可以将其设置为默认声音,否则您也可以使用'sound'=>'doorbell.caf'.