MODE-iOSSDK 1.3.0

MODE-iOSSDK 1.3.0

测试已测试
语言语言 Obj-CObjective C
许可协议 MIT
发布最后发布2016年6月

维护者:Takano NaokiKan EthanMODE App 管理员



 
依赖项
Mantle>= 0
SocketRocket>= 0
 

概述

MODE-iOSDK 为 MODEAPI 提供了一层包装,并处理连接 iOS 应用、设备和智能模块的数据对象。

有了这个 SDK,您可以轻松实现 MODE 项目的 iOS 应用。

要求

此 SDK 适用于 iOS 7 及以上版本。库依赖于 MantleSocketRocket。更多详细信息请参阅 MODE-iOSSDK.podspec

安装

所有类都以 MODE 为前缀。

MODEAppAPI

ModeApp.h 定义了 API 包装类 MODEAppAPI,与 MODE 云服务交互。每个方法对应一个 MODE 云 API 端点。

所有方法都是异步的,因此您需要传递一个回调函数作为 Objective-C 块,并在块被调用时检查 NSError 对象。如果发生错误,则 NSError 有一个非空值。否则,表示调用成功。

默认情况下,回调块在主 GUI 线程中被调用。因此,您可以从回调中调用其他与 UI 相关的 API。如果需要更改行为,请将 ModeApp.m 中的 EXECUTE_BLOCK_IN_MAIN_THREAD 宏值设置为 0

请参阅 ModeApp.h 中的注释,以获取有关类方法的详细文档。

MODEData

ModeData.h 定义了数据类,每个类对应于一个由 MODE 定义的 JSON 架构。JSON 对象被解析,每个属性按预期数据类型存储。一个例外是 MODEDeviceEvent 中的 eventData。它是 NSDictionary,因为其实际结构由开发者决定。

这些类是 MTLModel 的子类,因此您可以使用巧妙的 Mantle 函数。

MODEEventListener

MODEEventListener 是一个管理连接到 MODE 云并接收 MODE 发送的事件的类。在您的应用程序等待事件时,请不要删除该对象。

使用示例

以下是监听事件的代码示例。示例代码没有检查错误,因此如果您想重用此代码,请确保添加更多的错误检查。

您需要在 MODE 开发者控制台 上定义一个项目。您还需要为项目定义一个应用程序。有关设置 MODE 项目的详细说明,请参阅 入门 教程。这里假设 projectId1234appIdSampleApp1

// You have to trigger somewhere with button or menu.
[MODEAppAPI initiateAuthenticationWithSMS:1234 phoneNumber:@"YOUR PHONE NUMBER"
    completion:(void(^)(MODESMSMessageReceipt* obj, NSError* err)){ /* Need to error check */ };

您将通过短信收到您的验证码。在以下代码片段中,将 CODE VIA SMS 替换为此代码。现在,您的应用程序可以监听来自设备或智能模块的事件。

MODEEventListener* listener = nil; // Maybe you should define this as property in the class to keep the object alive.

[MODEAppAPI authenticateWithCode:1234 phoneNumber:@"YOUR PHONE NUMBER" appId:@"SampleApp1" code:@"CODE VIA SMS"
    completion:(void(^)(MODEClientAuthentication* auth, NSError* err)){

      listner = [[MODEEventListener alloc] initWithClientAuthentication:auth]; 

      [listener startListenToEvents:^(MODEDeviceEvent* event, NSError* err){
        if (event) {
          NSLog(@"Event: %@", event);
        }

      }];
    }];

示例应用程序

SDK 中还包含一个名为 Lumos 的示例应用程序。它是一个简单智能照明系统的控制应用程序。

转到 示例 目录并运行

$ pod install

然后使用 Xcode 打开 MODE-iOSSDK.xcworkspace

在运行应用程序之前,您需要在 MODE 开发者控制台 上设置一个项目和应用程序。如果您不熟悉开发者控制台,请先阅读我们的 文档

构建应用程序,并在 iOS 模拟器或您的 iOS 设备上运行它。当应用程序启动时,您应该看到以下屏幕

Project setting screen

在示例项目的控制台中找到您的 项目 ID。输入 项目 ID,然后按 完成 按钮。然后您应该会看到以下启动屏幕

Lumos screen

如果您以后想更改 项目 ID,您可以从 iOS 主页上的设置 -> Lumos 页面进入。或者,在卸载 Lumos 后重新安装它。有关构建用于您的 MODE 项目的 iOS 应用程序的完整说明,请参阅此 教程

App IDLMDataHolder.m 中固定为 controller_app。在示例项目中已经预定义了 controller_app。如果您想分配其他 App ID 并在 Xcode 中重建 Lumos,请替换它。

if (self) {
    self.members = [[LMDataHolderMembers alloc] init];

    // You would need to setup appId according to your App settings.
    // The sample project pregenerates "controller_app" App. So you don't have to change the project
    // if you use it as it is.
    // Please see more detail (http://dev.tinkermode.com/tutorials/getting_started.html) to get them.
    self.appId = @"controller_app";
}

作者

Naoki Takano,[email protected]

许可证

MODE-iOSSDK 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。