Facebook In-App Notifications 允许您创建丰富定制的应用内通知,并基于用户在您应用中的行为通过推送通知发送。您可以使用文本、图片、动态 GIF、按钮,或扩展开放格式来满足您的需求。
要在 iOS 上入门,使用以下选项之一安装框架
CocoaPods
将以下行添加到您的 Podfile
pod 'FBNotifications'
运行 pod install
,这样您现在应该已经安装了最新版本的框架。
将以下行添加到您的 Cartfile
github "facebook/FBNotifications"
运行 carthage update
,现在您应该在 Carthage 文件夹中有框架的最新版本。
安装框架后,您需要在您的应用程序代理中添加以下内容以显示通知
使用 Objective-C
/// Present In-App Notification from remote notification (if present).
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(nonnull void (^)(UIBackgroundFetchResult))completionHandler {
FBNotificationsManager *notificationsManager = [FBNotificationsManager sharedManager];
[notificationsManager presentPushCardForRemoteNotificationPayload:userInfo
fromViewController:nil
completion:^(FBNCardViewController * _Nullable viewController, NSError * _Nullable error) {
if (error) {
completionHandler(UIBackgroundFetchResultFailed);
} else {
completionHandler(UIBackgroundFetchResultNewData);
}
}];
}
使用 Swift
/// Present In-App Notification from remote notification (if present).
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
FBNotificationsManager.sharedManager().presentPushCardForRemoteNotificationPayload(userInfo, fromViewController: nil) { viewController, error in
if let _ error = error {
completionHandler(.Failed)
} else {
completionHandler(.NewData)
}
}
}
要在 Android 上入门,将以下内容添加到您的 gradle 依赖关系中
compile 'com.facebook.android:notifications:1.+'
添加依赖项后,您必须设置 GCM 监听服务,并在服务中添加以下内容
@Override
public void onMessageReceived(String from, final Bundle data) {
NotificationsManager.presentNotification(
this,
data,
new Intent(getApplicationContext(), MainActivity.class)
);
}
一旦所有通知内容都准备好了,它将自动向最终用户显示通知,并带有一个待办意向以在打开时显示卡。要从意向传输必要的数据,您需要在 MainActivity 的 onCreate
函数中处理通知
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NotificationsManager.presentCardFromNotification(this);
}
}
有关入门的帮助,请参阅我们的Facebook Analytics 推送文档。
应用内通知由一个自定义格式提供支持,它在仓库中有开放规范。该格式描述了框架可以渲染的所有可能值和内容组合。
我们欢迎接受对该格式和规范的贡献,格式正在不断演变。任何版本的框架都与同一主要版本范围内的格式的任何先前版本兼容。
例如
1.0.0
与 格式版本 1.0
兼容1.0.0
与 格式版本 1.5
不兼容1.5.0
与 格式版本 1.5
兼容1.5.1
与 格式版本 1.5
兼容2.0.0
与 格式版本 1.0
,或 1.5
不兼容我们想使对这个项目的贡献尽可能简单和透明。请参阅贡献指南。
查看代码的LICENSE
文件。查看In-App通知格式的LICENSE-specification
文件。