Lattis SDK for iOS
依赖项
- Oval.framework (Lattis 网络API)
- KeychainSwift
- CryptoSwift
安装
将以下行添加到您的 Podfile
pod 'LattisSDK'
执行
pod install
如果您在前一个步骤中有任何错误,请执行以下命令
pod repo update
如果想要使用上一个版本,使用标签
v1.1.5
或
pod 'LattisSDK', '1.1.5'
用法
将 LattisSDKToken (String) 添加到您的 Info.plist
导入
import LattisSDK
代表
public protocol EllipseManagerDelegate: class {
func manager(_ lockManager: EllipseManager, didRestoreConnected locks: [Ellipse])
// Called when new locks discovered or old ones become not available
// insert - contains only newly discovered locks
// delete - contains not reachable locks
// you can use lockManager.locks to get whole list of available locks
func manager(_ lockManager: EllipseManager, didUpdateLocks insert: [Ellipse], delete: [Ellipse])
// Called when state of bluetooth is changing
func manager(_ lockManager: EllipseManager, didUpdateConnectionState connected: Bool)
}
public protocol EllipseDelegate: class {
// Called when connection state of lock is changing
// connection - represents current connection state of the lock
func ellipse(_ ellipse: Ellipse, didUpdate connection: Ellipse.Connection)
// Called when lock's security state changing (lock/unlock/etc)
func ellipse(_ ellipse: Ellipse, didUpdate security: Ellipse.Security)
// Called when lock's dynamic values changing (magnitude/battery level/RSSI)
func ellipse(_ ellipse: Ellipse, didUpdate value: Ellipse.Value)
}
查找锁
EllipseManager.shared.scan(with: self)
或者如果您已经从其他类中调用了 scan()
,您可以订阅 EllipseManager
更新。
EllipseManager.shared.subscribe(handler: self)
self
(或任何其他对象实例)应符合EllipseManagerDelegate
协议
调用
EllipseManager.shared.stopScan()
如果您不再需要发现新的锁。
您不需要从 EllipseManager
解除更新订阅。这会自动完成。没有对处理器的强引用。
连接到锁
let ellipse: Ellipse = EllipseManager.shared.locks.first
ellipse?.connect(handler: self)
或者如果您已经连接到锁,可以订阅锁的更新
ellipse?.subscribe(self)
self
(或任何其他对象实例)应符合EllipseDelegate
协议
调用
ellipse?.disconnect()
如果您想要断开锁的连接。
其他功能
管理占用触摸面板(FW=> 2.75)
您可以禁用或启用占用触摸面板
ellipse?.isCapTouchEnabled = false // true by default
isCapTouchEnabled == nil
表示您尚未获得它的状态。您可以在didUpdate value
代理方法中接收到对该值的通知
管理磁性自动锁定(FW=> 2.75)
您可以管理基于罗盘的自锁功能
ellipse?.isMagnetAutoLockEnabled = true // false by default
isMagnetAutoLockEnabled == nil
表示您还没有获取它的状态。您可以在didUpdate value
代理方法中接收到该值的更新。
锁扣位置检查(FW => 2.75)
您可以检查锁扣是否已插入。
ellipse?.isShackleInserted
您可以在didUpdate value
代理方法中收到该值的更新。
示例
您可以在本存储库的根目录中找到Lattis Demo
目录。它包含了演示SDK API使用的实时演示项目。
React Native 支持
此库支持Rect Native。您可以在以下目录中找到示例项目:ReactNative/RNLattisSDK
。访问wiki页面了解更多关于将LattisSDK
手动(不使用Cocoapods)添加到您的React Native项目的信息。
后台模式
如果您在应用程序的功能设置中开启使用蓝牙LE配件
,则此SDK将自动在后台工作。