我想通过firebase推送通知发送特定链接内部通知,该怎么做?

时间:2016-12-25 14:27:45

标签: android firebase

假设在我的通知中,今天是X的生日,它会在点击通知时打开X的FB链接,对Y来说也是如此,如何使用firebase执行此操作

2 个答案:

答案 0 :(得分:3)

以下是这样做的方法:

1)服务器站点请求:

请求网址:https://fcm.googleapis.com/fcm/send

方法:POST

部首:

  • Content-Type:application / json

  • 授权:key = ... your_key ...

体:

{
  "registration_ids" :[devices_token],
  "priority" : "high",
  "notification" : {
    "body" : "Notification body here",
    "title" : "notification title here",
    "click_action": "action.open.facebook.with.url"
  },
  "data" : {
    "openURL" : "https://facebook.com/xxx"
  }
}

2)Android应用:

的AndroidManifest.xml:

<activity android:name=".activity.OpenFacebookLink">
    <intent-filter>
        <action android:name="action.open.facebook.with.url" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

FirebaseMessagingService的子类中:

@Override
public void onMessageReceived(RemoteMessage message) {
    super.onMessageReceived(message);
    String url = message.getData().get("openURL");
    if(message.getNotification()!=null) {
        // do some thing with url when app in foreground
    } else {
        // do some thing with url when app in background
    }
}

OpenFacebookLink活动中,请执行以下操作:

Intent intent = getIntent();
String url = intent.getStringExtra("openURL");
// do open facebook with url

答案 1 :(得分:0)

如果您想从FCM面板手动发送通知,请执行以下操作: 然后做一个关键像: 链接并输入,即您的fb链接。然后将通知发送给该特定用户或FCM面板中的主题或细分。

您可以在应用程序中处理它,例如:

从通知中提取数据然后......

if (data != null) {
            directLink = data.optString("directLink");
        }

在通知打开方法中:

Intent browserIntent = new Intent(android.content.Intent.ACTION_VIEW,
                    Uri.parse(link));
            browserIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(browserIntent);

但是如果你想让这个过程自动化,你就必须编写一个脚本,从一些数据库中提取生日链接,并通过 FCM API 向用户发送通知,然后执行发布该API的请求。