FBNotifications 1.0.1

FBNotifications 1.0.1

测试已测试
Lang语言 Obj-CObjective C
许可 自定义
发布最后发布2016年5月

Nikita Lutsenko 维护。



  • 作者:
  • Nikita Lutsenko

Facebook In-App Notifications 允许您创建丰富定制的应用内通知,并基于用户在您应用中的行为通过推送通知发送。您可以使用文本、图片、动态 GIF、按钮,或扩展开放格式来满足您的需求。

在 iOS 上入门

要在 iOS 上入门,使用以下选项之一安装框架

  • CocoaPods

    将以下行添加到您的 Podfile

    pod 'FBNotifications'

    运行 pod install,这样您现在应该已经安装了最新版本的框架。

  • Carthage

    将以下行添加到您的 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 上入门

Maven Central

要在 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文件。