2016-05-19 17 views
2

GCMサーバーを使用してアンドロイドモバイルにプッシュ通知を送信するためのPHPコードを作成しました。そのうまく動作します。今私はプッシュ通知として大小のイメージを送信したいと思います。どうすればいいのですか?私のコードはここにあります。GCMを使用してアンドロイドのプッシュ通知として小さなイメージを送信する方法

<?php 
// API access key from Google API's Console 
define('API_ACCESS_KEY', 'YOUR-API-ACCESS-KEY-GOES-HERE'); 
$registrationIds = array($_GET['id']); 
// prep the bundle 
$msg = array 
(
    'message' => 'here is a message. message', 
    'title'  => 'This is a title. title', 
    'subtitle' => 'This is a subtitle. subtitle', 
    'tickerText' => 'Ticker text here...Ticker text here...Ticker text here', 
    'vibrate' => 1, 
    'sound'  => 1, 
    'largeIcon' => 'https://cdn4.iconfinder.com/data/icons/iconsimple-logotypes/512/github-512.png', 
    'smallIcon' => 'small_icon' 
); 
$fields = array 
(
    'registration_ids' => $registrationIds, 
    'data'   => $msg 
); 

$headers = array 
(
    'Authorization: key=' . 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; 
?> 
+0

次ちょうど 'プッシュnotification'であなたの'画像link'を送信して、受信機でそれをロードします。 –

+0

ええと...私はそれを試しました..しかし、それはウォーキングではありません。これは私の画像リンクです 'largeIcon' => 'https://cdn4.iconfinder.com/data/icons/iconsimple-logotypes/512/github -512.png'' –

+0

あなたのレシーバーでこのリンクを取得していますか?はいの場合は、受信機を表示します。 –

答えて

2

私はあなたが私はこれを使用していOneSignal

を使用することをお勧めします、あなたはこの中で、はるかになるだろうし、あなたの大きな画像と小さな画像の問題はここから解決することができ、それはコストの完全に無料です。

+0

申し訳ありません。私は他のAPIをしたくない..ありがとう.. –

1

「largeIcon」パラメータで指定されたイメージをビットマップとしてダウンロードし、通知に設定する必要があります。ここでは、Glide Imageローディングライブラリでどのように行われるかの例を示します。あなたのGCMListenerサービスのonMessageReceivedで

@Override 
public void onMessageReceived(String from, Bundle data) { 
    String largeIconUrl = data.getString("largeIcon"); // the way you obtain this may differ 
    Bitmap largeBitmap = null; 
    try { 
     largeBitmap = Glide 
         .with(this) 
         .load(largeIconUrl) 
         .asBitmap() 
         .into(100, 100) // Width and height 
         .get(); 
    } catch (Exception ex){ 
     // image download from the url failed 
    } 

    if(largeBitmap != null){ 
     Intent intent = new Intent(this, MainActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT); 

     Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
                  .setSmallIcon(R.drawable.ic_launcher) 
                  .setContentTitle("Your title goes here") 
                  .setContentText("Your description goes here") 
                  .setAutoCancel(true) 
                  .setSound(defaultSoundUri) 
                  .setContentIntent(pendingIntent) 
                  .setLargeIcon(largeBitmap); 

     NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

     notificationManager.notify(0 /* ID of notification */, notificationBuilder.build()); 
    } 
} 
関連する問題