假设在我的通知中,今天是X的生日,它会在点击通知时打开X的FB链接,对Y来说也是如此,如何使用firebase执行此操作
答案 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的请求。