DiHola Shaking API for iOS
DiHola Shaking API 通过摇晃设备实现设备之间快速且可靠的通信。我们提供了一种安全且灵活的协议,该技术可应用于任何形式的数据交换:支付处理、文件共享、社交网络、验证流程等。
索引
安装
CocoaPods
在下面的代码中添加以下行到你的 Podfile
target 'YourProject' do
use_frameworks!
pod 'DiHolaShakingAPI', '~> 0.5.6'
end
然后运行以下命令
$ pod install
手动安装
- 将 DiHolaShakingAPI.xcodeproj 拖到项目导航器中的你的项目上。
- 选择你的项目,然后选择你的应用程序目标。打开构建阶段面板。
- 展开目标依赖项组,并添加 DiHolaShakingAPI 框架。
用法
将 NSLocationWhenInUseUsageDescription
添加到 Info.plist
Swift
import DiHolaShakingAPI
var shakingAPI = ShakingAPI(
API_KEY: "Get one at www.diholapp.com",
USER_ID: "USER_ID",
onShaking: {
print("Shaking detected")
},
onSuccess: { (result) in
print(result)
},
onError: { (error) in
print(error)
}
)
shakingAPI.start()
在此处您可以找到一个示例。
Objective-C
#import "DiHolaShakingAPI-Swift.h"
ShakingAPI *shakingAPI = [[ShakingAPI alloc] initWithAPI_KEY:@"Your API key" USER_ID:@"USER_ID" onShaking:^{
// Your shaking handler
[self shakingHandler];
} onSuccess:^(NSArray<NSString *>* result) {
// Your success handler
[self successHandler:result];
} onError:^(ShakingCode code) {
// Your error handler
[self errorHandler:code];
}];
[shakingAPI start];
自定义 API
可以根据需要自定义不同的参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
灵敏度 | Double |
3 |
触发摇动事件的灵敏度。 |
距离过滤器 | Int |
100 |
两个设备之间允许配对的最大距离(米)。必须考虑 GPS 边缘误差 |
时间过滤器 | Int |
2000 |
两个摇动事件之间允许配对的最大时间差(毫秒)。值在 100 到 10000 之间。 |
保持搜索 | Bool |
false |
正值将允许在找到用户后继续搜索。这可能会允许与多个设备配对。响应时间将受到影响。 |
震动 | Bool |
true |
在摇动时震动。 |
仅与... | [String] |
[] |
允许仅与一组用户连接。这在过程验证中可能很有用。 |
示例
shakingAPI.sensibility = 5
shakingAPI.timingFilter = 4000
shakingAPI.keepSearching = true
方法
摘要
详情
ShakingAPI()
var shakingAPI = ShakingAPI(API_KEY, USER_ID, onShaking, onSuccess, onError);
-
选项:
名称 类型 默认值 必需 描述 API_KEY 字符串
-- 是
在 www.diholapp.com 获取一个 USER_ID 字符串
-- 是
用户标识符 onShaking 函数
-- 否
检测到摇晃事件时调用 onSuccess 函数
-- 是
与配对用户列表一起调用 onError 函数
-- 是
遇到错误时调用
start()
shakingAPI.start();
开始监听摇晃事件。
stop()
shakingAPI.stop();
停止监听摇晃事件。
simulate()
shakingAPI.simulate();
模拟摇晃事件。
setLocation()
Swift
shakingAPI.setLocation(latitude, longitude);
Objective-C
[shakingAPI setLocationWithLatitude:lat longitude:lng];
手动设置位置将禁用使用设备位置。
参数
名称 | 类型 | 默认值 |
---|---|---|
纬度 | Double | 设备当前值 |
经度 | Double | 设备当前值 |
错误代码
名称 | 描述 |
---|---|
LOCATION_PERMISSION_ERROR | 未接受位置权限 |
LOCATION_DISABLED | 位置已禁用 |
SENSOR_ERROR | 传感器设备不可用 |
AUTHENTICATION_ERROR | API密钥无效 |
API_KEY_EXPIRED | API密钥已过期 |
SERVER_ERROR | 服务器不可用 |
示例(Swift)
var shakingAPI = ShakingAPI(
...
onError: { (error) in
switch error {
case .LOCATION_PERMISSION_ERROR:
// Do something
break;
case .LOCATION_DISABLED:
// Do something
break;
case .AUTHENTICATION_ERROR:
// Do something
break;
case .API_KEY_EXPIRED:
// Do something
break;
case .SERVER_ERROR:
// Do something
break;
case .SENSOR_ERROR:
// Do something
break;
}
}
);
示例(Objective-C)
ShakingAPI *shakingAPI = [[ShakingAPI alloc] ...
onError:^(ShakingCode code) {
switch (code) {
case ShakingCodeLOCATION_PERMISSION_ERROR:
// Do something
break;
case ShakingCodeLOCATION_DISABLED:
// Do something
break;
case ShakingCodeAUTHENTICATION_ERROR:
// Do something
break;
case ShakingCodeAPI_KEY_EXPIRED:
// Do something
break;
case ShakingCodeSERVER_ERROR:
// Do something
break;
case ShakingCodeSENSOR_ERROR:
// Do something
break;
}
}];
贡献
欢迎提交拉取请求。对于重大更改,请先提交一个问题来讨论您想要进行哪些更改。