서버 측의 데이터로 알림을 보내고 선택한 데이터를 해당 활동으로 표시하려고합니다. 지금까지 나는 서버에서 알림을 보내고 내가 선택한 모든 활동에이를 표시했습니다. 내가하지 않는 무엇Firebase가 서버 API의 키 쌍 값으로 알림을 전송합니다.
알림 데이터를 포함하는 방법
- 입니까?
- 활동에서 어떻게 받습니까?
필자는 가이드를 따라했지만 Firebase 콘솔의 데이터로 알림 만 보냈습니다.
<?php
require "init.php";
$message =$_POST['message'];
$title=$_POST['title'];
//firebase server url
$path_to_fcm='https://fcm.googleapis.com/fcm/send';
// Here is the server_key
$server_key="#########";
$token="#########";
$headers= array(
'Authorization:key='.$server_key,
'Content-Type:application/json'
);
// here use $tokens as the replace $key
$fields= array('to'=>$token,
'notification'=>array('title'=>$title,'body'=>$message,
'click_action'=>'com.fredycom.tundevufirebasemysql_TARGET_NOTIFICATION'
));
$payload= json_encode($fields);
$curl_session= curl_init();
curl_setopt($curl_session,CURLOPT_URL,$path_to_fcm);
curl_setopt($curl_session,CURLOPT_POST,true);
curl_setopt($curl_session,CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl_session,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl_session,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl_session,CURLOPT_IPRESOLVE,CURL_IPRESOLVE_V4);
curl_setopt($curl_session,CURLOPT_POSTFIELDS,$payload);
$result =curl_exec($curl_session);
curl_close($curl_session);
mysqli_close($con);
?>
// PHP 코드에서 활동
public class MainActivity extends AppCompatActivity {
TextView title, message;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// REGISTER BROADCAT RECEIVER
LocalBroadcastManager.getInstance(this).registerReceiver(mHandler, new IntentFilter("com.fredycom.myreartime_FCM_MESSAGE"));
setContentView(R.layout.activity_main);
title = (TextView) findViewById(R.id.title_content);
message = (TextView) findViewById(R.id.message_content);
if (getIntent().getExtras() != null)
{
for (String key : getIntent().getExtras().keySet()) {
if (key.equals("title"))
{
title.setText(getIntent().getExtras().getString(key));
}
else if (key.equals("message"))
{
message.setText(getIntent().getExtras().getString(key));
}
}
}
}
// HERE IS THE BROADICAST RECEIVER GET DATA FROM SMS RECIVING SERVICE
private BroadcastReceiver mHandler= new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String Mytitle= intent.getStringExtra("title");
title.setText(Mytitle);
String Mymessage= intent.getStringExtra("message");
message.setText(Mymessage);
}
};
protected void onPause(){
super.onPause();
LocalBroadcastManager.getInstance(this).unregisterReceiver(mHandler);
}
}
이 엄청난 설명과 함께 내 인생을 구하기 위해 sooo 많은 @AL 감사합니다 .. 계속 ... –
당신은 오신 것을 환영합니다. 앱을 사용해보세요. :) –