秒验SDK扩展业务功能设置
1、扩展业务说明
秒验SDK提供的扩展业务功能为:
- (1)针对特定区域群体的设备安全检测;
- (2)确保秒验SDK产品和/或服务在不同设备上的兼容性;
- (3)提供可信赖、防作弊的服务;
- (4)合并链路服务。
其中iOS端支持第(1)和(2)点。秒验SDK为开发者提供退出上述功能的接口,开发者可以调用接口,向最终用户提供退出的能力。最终用户退出上述功能后,秒验SDK依然可以为您终端用户提供基于手机号码的一键登录功能及手机号码验证服务。开发者需遵守相关法律法规的要求,在App内为最终用户提供退出上述扩展业务的功能,并保证在最终用户点击退出功能后能正常调用秒验SDK的能力接口。
2、配置方法
应用若需要控制秒验SDK扩展业务功能进行配置,只需要自定义类 MobCustomController
准守协议 MOBFoundationPrivacyDelegate
对这些功能所依赖之数据项进行配置即可。操作方法如下:
2-1、针对特定区域群体的设备安全检测
此功能依赖数据项包括:地理位置信息。自定义类 MobCustomController
中与之对应的开关和数据回传方法列表如下:
<span style="background-color:#42475a"><span style="color:#a9b7c6"><code class="language-obj-c">/**
用于判断是否允许SDK主动采集经纬度信息
@<span style="color:#cc7832">return</span> YES表示可以主动采集经纬度信息,NO表示不可以,默认为YES
*/
- (BOOL)isLocInfoEnable;
/**
APP提供经纬度信息
当SDK被拒绝主动采集经纬度信息后(isLocInfoEnable返回NO),会通过此方法向App请求经纬度信息
@<span style="color:#cc7832">return</span> 经纬度信息,如果返回 <span style="color:#6897bb">nil</span> 则表示不提供地理位置信息,默认为<span style="color:#6897bb">nil</span>
*/
- (CLLocation* _Nullable)getLoc;
</code></span></span>
- 当上述数据开关接口返回 YES时,秒验SDK 被允许自行获取相应数据;
- 当上述开关接口返回 NO时,秒验SDK 被禁止自行获取相应数据,仅允许向 App请求相应数据。此时 App可选择是否回传相应数据。
2-2、确保秒验SDK产品和/或服务在不同设备上的兼容性
此功能依赖数据项包括:网络状态信息。自定义类 MobCustomController
中与之对应的开关和数据回传方法列表如下:
<span style="background-color:#42475a"><span style="color:#a9b7c6"><code class="language-obj-c">/**
用于判断是否允许SDK主动采集wifi信息,确保秒验SDK产品和/或服务在不同设备上的兼容性
@<span style="color:#cc7832">return</span> YES表示可以主动采集wifi信息,NO表示不可以,默认为YES
*/
- (BOOL)isWiFiInfoEnable;
/**
用于判断是否允许SDK主动采集ip信息,确保秒验SDK产品和/或服务在不同设备上的兼容性
@<span style="color:#cc7832">return</span> YES表示SDK可以主动采集ip信息,NO表示不可以,默认为YES
*/
- (BOOL)isIpEnable;
/**
APP提供wifi地址信息
当SDK被拒绝主动采集wifi地址信息后(isWiFiInfoEnable返回NO),会通过此方法向App请求wifi地址信息
@<span style="color:#cc7832">return</span> wifi名称信息,如果返回 <span style="color:#6897bb">nil</span> 则表示不提供wifi地址信息,默认为<span style="color:#6897bb">nil</span>
*/
- (NSString* _Nullable)getBSSID;
/**
APP提供wifi名称信息
当SDK被拒绝主动采集wifi名称信息后(isWiFiInfoEnable返回NO),会通过此方法向App请求wifi名称信息
@<span style="color:#cc7832">return</span> wifi名称信息,如果返回 <span style="color:#6897bb">nil</span> 则表示不提供wifi名称信息,默认为<span style="color:#6897bb">nil</span>
*/
- (NSString* _Nullable)getSSID;
/**
APP提供 蜂窝 ipv4 信息
当SDK被拒绝主动采集 蜂窝 ipv4 信息后(isIpEnable返回NO),会通过此方法向App请求 蜂窝 ipv4 信息
@<span style="color:#cc7832">return</span> 蜂窝 ipv4信息,如果返回<span style="color:#6897bb">nil</span>则表示不提供蜂窝ipv4信息,默认为<span style="color:#6897bb">nil</span>
*/
- (NSString* _Nullable)getCellIpv4;
/**
APP提供 蜂窝ipv6 信息
当SDK被拒绝主动采集 蜂窝ipv6 信息后(isIpEnable返回NO),会通过此方法向App请求蜂窝ipv6信息
@<span style="color:#cc7832">return</span> 蜂窝ipv6信息,如果返回<span style="color:#6897bb">nil</span>则表示不提供蜂窝ipv6信息,默认为<span style="color:#6897bb">nil</span>
*/
- (NSString* _Nullable)getCellIpv6;
/**
APP提供 wifi ipv4 信息
当SDK被拒绝主动采集 wifi ipv4 信息后(isIpEnable返回NO),会通过此方法向App请求蜂窝wifi ipv4信息
@<span style="color:#cc7832">return</span> wifi ipv4 信息,如果返回<span style="color:#6897bb">nil</span>则表示不提供 wifi ipv4 信息,默认为<span style="color:#6897bb">nil</span>
*/
- (NSString* _Nullable)getWifiIpv4;
/**
APP提供 wifi ipv6 信息
当SDK被拒绝主动采集 wifi ipv6 信息后(isIpEnable返回NO),会通过此方法向App请求蜂窝wifi ipv6信息
@<span style="color:#cc7832">return</span> wifi ipv6 信息,如果返回<span style="color:#6897bb">nil</span>则表示不提供 wifi ipv6 信息,默认为<span style="color:#6897bb">nil</span>
*/
- (NSString* _Nullable)getWifiIpv6;
</code></span></span>
- 当上述数据开关接口返回 YES时,秒验SDK 被允许自行获取相应数据;
- 当上述开关接口返回 NO时,秒验SDK 被禁止自行获取相应数据,仅允许向 App请求相应数据。此时 App可选择是否回传相应数据。
2-3、其它配置
其它 App数据采集主动控制器
的配置方法,可参考:https://www.mob.com/wiki/detailed?wiki=675&id=714
3、接入方法
3-1、声明一个类,遵守协议 MOBFoundationPrivacyDelegate
示例代码:
<span style="background-color:#42475a"><span style="color:#a9b7c6"><code class="language-obj-c"><span style="color:#bbb529">#import <MOBFoundation/MOBFoundation.h></span>
<span style="color:grey">/**
自定义数据配置控制类,准守协议MOBFoundationPrivacyDelegate
*/</span>
<span style="color:#cc7832">@interface</span> <span style="color:#ffc66d">MobCustomController</span> : <span style="color:#ffc66d">NSObject</span> <<span style="color:#ffc66d">MOBFoundationPrivacyDelegate</span>>
<span style="color:#cc7832">@end</span>
<span style="color:#cc7832">@implementation</span> <span style="color:#ffc66d">MobCustomController</span>
- (BOOL)isWiFiInfoEnable
{
<span style="color:#cc7832">return</span> <span style="color:#6897bb">YES</span>;
}
- (NSString *)getSSID
{
<span style="color:#cc7832">return</span> <span style="color:#6897bb">nil</span>;
}
- (NSString *)getBSSID
{
<span style="color:#cc7832">return</span> <span style="color:#6897bb">nil</span>;
}
- (BOOL)isIdfvEnable
{
<span style="color:#cc7832">return</span> <span style="color:#6897bb">YES</span>;
}
- (NSString* _Nullable)getIdfv
{
<span style="color:#cc7832">return</span> <span style="color:#6897bb">nil</span>;
}
- (BOOL)isIdfaEnable
{
<span style="color:#cc7832">return</span> <span style="color:#6897bb">YES</span>;
}
- (NSString* _Nullable)getIdfa
{
<span style="color:#cc7832">return</span> <span style="color:#6897bb">nil</span>;
}
- (BOOL)isLocInfoEnable
{
<span style="color:#cc7832">return</span> <span style="color:#6897bb">YES</span>;
}
- (CLLocation *)getLoc
{
<span style="color:#cc7832">return</span> <span style="color:#6897bb">nil</span>;
}
<span style="color:#cc7832">@end</span>
</code></span></span>
3-2、通过隐私提交接口设置 自定义类 MobCustomController
实例
<span style="background-color:#42475a"><span style="color:#a9b7c6"><code class="language-obj-c"><span style="color:#bbb529">#import <MOBFoundation/MOBFoundation.h></span>
MobCustomController *privacyDataServie = [MobCustomController new];
[MobSDK uploadPrivacyPermissionStatus:<span style="color:#6897bb">YES</span> privacyDataDelegate:privacyDataServie onResult:^(BOOL success) {
}];
</code></span></span>
注意:通过隐私提交接口设置 MobCustomController 实例时,必须每次启动 APP 时,均调用该接口进行设置。若您的 APP 并非每次启动都会调用隐私提交接口,也可以通过 [MobSDK setPrivacyDataDelegate:privacyDataServie];
接口进行设置。
3-3、(可选)通过 setPrivacyDataDelegate:
接口设置 MobCustomController
实例
<span style="background-color:#42475a"><span style="color:#a9b7c6"><code class="language-obj-c"><span style="color:#bbb529">#import <MOBFoundation/MOBFoundation.h></span>
TestPrivacyDataService *privacyDataServie = [TestPrivacyDataService <span style="color:#cc7832">new</span>];
[MobSDK setPrivacyDataDelegate:privacyDataServie];
</code></span></span>
setPrivacyDataDelegate:
接口调用时机说明:
- 建议在应用启动时尽快调用该接口,比如
application:didFinishLaunchingWithOptions:
中 - 该接口必须每次启动都调用