-1
내 앱에서 FCM을 구현하려고하지만 문제가 있습니다. 내 맞춤 코드를 호출하는 대신 알림을 보낼 때마다 기본 알림 만 표시됩니다. 내가 도대체 뭘 잘못하고있는 겁니까? 서비스를 실행하는 Android FCM 표시 알림
그
는 서비스 있습니다<service
android:name="com.backgroundws.MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<service
android:name="com.backgroundws.MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
그리고 이것은 내 자바 코드 :
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d("MyFirebaseMessaging", "GotMessage");
WSListener.sendEvent(this, "Push");
}
}
그리고이 장치에 알림을받을 때 나는 로그 캣에서 볼 :
I/SendBroadcastPermission: action:com.google.android.gms.gcm.ACTION_SCHEDULE, mPermissionType:0
I/SendBroadcastPermission: action:com.google.android.gms.gcm.ACTION_SCHEDULE, mPermissionType:0
다음은 알림을 보내는 방법입니다.
function send_gcm_notify($reg_id, $message, $url, $key) {
$fields = array(
'to' => $reg_id ,
'priority' => "high",
"notification" => array("body"=>$message),
'data' => array("url"=> $url)
);
$headers = array(
'Content-Type: application/json',
'Authorization: key=' . $key
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://fcm.googleapis.com/fcm/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);
if ($result === FALSE) {
//die('Problem occurred: ' . curl_error($ch));
}
curl_close($ch);
return $result;
}
물론 테스트를 거쳤으며 서비스 경로가 정확합니다.
가장 중요한 정보 인 알림 데이터를주의해서 관리 하시겠습니까? –
. 키와 reg_id는 올바른 것이므로 알림을받습니다. –
나는 당신의 PHP를 해독하고 싶지 않다. 실제 json 데이터 표시 –