StitchTwilioService 6.4.0

StitchTwilioService 6.4.0

由以下人员维护:Jason FlaxEric DanielsAdam Chelminski



 
依赖项
StitchCore= 6.4.0
StitchCoreTwilioService= 6.4.0
 

  • 作者
  • Jason Flax,Adam Chelminski 和 Eric Daniels

iOS Swift 4.0 Apache 2.0 License Cocoapods compatible

MongoDB Stitch iOS/Swift SDK

官方的 MongoDB Stitch SDK,用于 iOS/Swift。

索引

文档

讨论

安装

Xcode/iOS

CocoaPods

CocoaPods是一个Cocoa项目的依赖管理工具。可以使用以下命令安装它:

$ gem install cocoapods
  • 注意:要构建Stitch iOS SDK 5.0+,需要CocoaPods 1.6.0+版本。

要使用CocoaPods将iOS SDK集成到Xcode项目中,请在您的Podfile中指定它

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
use_frameworks!

target '<Your Target Name>' do
    # For core functionality and the Remote MongoDB Service
    pod 'StitchSDK', '= 6.4.0'

    # optional: for using the AWS service
    pod 'StitchSDK/StitchAWSService', '= 6.4.0'
    # optional: for using the Firebase Cloud Messaging service
    pod 'StitchSDK/StitchFCMService', '= 6.4.0'
    # optional: for using the HTTP service
    pod 'StitchSDK/StitchHTTPService', '= 6.4.0'
    # optional: for using the twilio service
    pod 'StitchSDK/StitchTwilioService', '= 6.4.0'
end

然后,运行以下命令:

$ pod install

打开由pod install生成的.xcworkspace文件,以访问包含所有必需的Stitch依赖项的项目。

示例用法

使用SDK创建新应用(iOS)

在Stitch上设置应用程序

  1. 转到https://stitch.mongodb.com/并登录到MongoDB Atlas。
  2. 在项目中用您希望的名字创建一个新应用。
  3. 通过点击左侧面板中的'Stitch'并点击您的应用,在Stitch中打开您的应用。
  4. 从左侧面板顶部复制您的Stitch App ID。
  5. 通过在左侧面板的用户页面中,选择“提供者”选项卡并启用“允许用户匿名登录”选项,来启用匿名认证。

使用 Stitch 在 Xcode/CocoaPods 中设置项目

  1. 下载并安装 Xcode

  2. 创建一个新的应用程序项目,输入您想要的名称。请确保 Swift 是选定的语言。

  • 注意:iOS 11.0 是最低的 iOS 发布目标。
  1. 使用命令行导航到项目目录,并运行 pod init
  2. 在生成的 Podfile 中,在你的应用程序目标的依赖关系下添加以下一行
    pod 'StitchSDK', '= 6.4.0'

如上所示,列出您可能添加到 Podfile 中的可选 Stitch 服务库。

  1. 运行 pod install
  2. 打开生成的 .xcworkspace 文件。您的应用程序项目将配置所有必要的依赖关系,以便与 MongoDB Stitch 进行通信。
  3. 要使用基本 Stitch 功能,在源文件中导入 import StitchCore
  4. 要创建如 ObjectId 这样的 BSON 文档和BSON 值,在源文件中导入 import MongoSwift
  5. 要通过 Stitch 访问远程 MongoDB 实例,在源文件中导入 import StitchRemoteMongoDBService

使用 SDK

初始化 SDK

  1. 如果您的应用程序初始化了,请运行以下代码来初始化 Stitch SDK。您的 AppDelegate.swift 中的 application(_:didFinishLaunchWithOptions) 方法可以是此初始化步骤的适当位置。请注意,您可以导入 import StitchCore
    // at the top of the file
    import StitchCore

    // ...

    // in `application(_:didFinishLaunchWithOptions)`
    do {
        _ = try Stitch.initializeDefaultAppClient(
            withClientAppID: "your-client-app-id"
        )
        print("Successfully initialized default Stitch app client!");
    } catch {
        // note: This initialization will only fail if an incomplete configuration is 
        // passed to a client initialization method, or if a client for a particular 
        // app ID is initialized multiple times. See the documentation of the "Stitch" 
        // class for more details.
        print("Failed to initialize MongoDB Stitch iOS SDK: \(error)")
    }
  1. 要获取用于登录和与 Stitch 通信的客户端,请使用 Stitch.defaultAppClient
    // in a view controller's properties, for example
    private lazy var stitchClient = Stitch.defaultAppClient!
登录
  1. 我们启用了匿名登录,让我们用它来登录!在代码的任何地方添加以下内容
let client = Stitch.defaultAppClient!

print("logging in anonymously")
client.auth.login(withCredential: AnonymousCredential()) { result in
      switch result {
      case .success(let user):
          print("logged in anonymous as user \(user.id)")
          DispatchQueue.main.async {
              // update UI accordingly
          }
      case .failure(let error):
          print("Failed to log in: \(error)")
      }
  }
  1. 现在通过转到 Xcode 的 Product,Run(或按 ⌘R)来运行您的应用程序。
  2. 应用程序运行后,通过转到 View,Debug Area,Show Debug Area 打开调试区域。
  3. 您应该会看到类似以下的消息
logging in anonymously                                                    	
logged in anonymously as user 58c5d6ebb9ede022a3d75050
执行一个函数
  1. 登录后,您可以使用StitchClient的callFunction()方法执行一个Stitch Function
    client.callFunction(
        withName: "echoArg", withArgs: ["Hello world!"], withRequestTimeout: 5.0
    ) { (result: StitchResult<String>) in
        switch result {
        case .success(let stringResult):
            print("String result: \(stringResult)")
        case .failure(let error):
            print("Error retrieving String: \(String(describing: error))")
        }
    }
  1. 如果您已将Stitch应用配置为拥有名为"echoArg"的函数,该函数返回其参数,则
// Stitch Function called 'echoArg'
exports = function(arg) {
  return arg;
};

那么在Xcode调试区域应会看到如下信息

String result: Hello world!
获取非Stitch.defaultAppClient的StitchAppClient

如果不希望有一个默认初始化的StitchAppClient,可以使用以下方法,为任意数量的应用ID�始化客户端

    do {        
        let client1 = try Stitch.initializeAppClient(withClientAppID: "your-first-client-app-id")
        
        let client2 = try Stitch.initializeAppClient(withClientAppID: "your-second-client-app-id")
    } catch {
        print("Failed to initialize MongoDB Stitch iOS SDK: \(error.localizedDescription)")
    }

您可以在应用中的任何地方使用返回的客户端

let client1 = try! Stitch.appClient(forAppID: "your-first-client-app-id")
let client2 = try! Stitch.appClient(forAppID: "your-second-client-app-id")