MobPush iOS端 扩展业务功能设置

1、扩展业务说明

MobPush提供的扩展业务功能为:

(1)按照地域提供更为精准的推送;

(2)实现网络链路的选择与优化、检测并实现与特定区域相关的服务;

(3)生成用户画像;

(4)合并链路服务。

其中iOS端支持第(1)和(2)点。MobPush为开发者提供退出上述功能的接口,开发者可以调用接口,向最终用户提供退出的能力。最终用户退出上述功能后,MobPush依然可以为您终端用户提供基础的消息推送服务。开发者需遵守相关法律法规的要求,在App内为最终用户提供退出上述扩展业务的功能,并保证在最终用户点击退出功能后能正常调用MobPush的能力接口。
2、配置方法

应用若需要控制MobPush扩展业务功能进行配置,只需要自定义类 MobCustomController 准守协议 MOBFoundationPrivacyDelegate对这些功能所依赖之数据项进行配置即可。操作方法如下:
2-1、按照地域提供更为精准的推送

此功能依赖数据项包括:地理位置信息。自定义类 MobCustomController 中与之对应的开关和数据回传方法列表如下:

复制代码
/**
 用于判断是否允许SDK主动采集经纬度信息,用于给终端用户推送消息,将终端用户的行为分成不同群体以便精准推送,并形成"推送报表"与"统计报表"呈现

 @return YES表示可以主动采集经纬度信息,NO表示不可以,默认为YES
 */
- (BOOL)isLocInfoEnable;

/**
 APP提供经纬度信息
 当SDK被拒绝主动采集经纬度信息后(isLocInfoEnable返回NO),会通过此方法向App请求经纬度信息

 @return 经纬度信息,如果返回 nil 则表示不提供地理位置信息,默认为nil
 */
 - (CLLocation* _Nullable)getLoc;
  • 当上述数据开关接口返回 YES时,MobPush被允许自行获取相应数据;
  • 当上述开关接口返回 NO时,MobPush被禁止自行获取相应数据,仅允许向 App请求相应数据。此时 App可选择是否回传相应数据。

2-2、实现网络链路的选择与优化、检测并实现与特定区域相关的服务

此功能依赖数据项包括:网络状态信息。自定义类 MobCustomController 中与之对应的开关和数据回传方法列表如下:

复制代码
/**
 用于判断是否允许SDK主动采集wifi信息,用于实现网络链路的选择与优化,确保稳定地提供MobPush产品和/或服务,以及为了检测并实现与特定区域相关的服务

 @return YES表示可以主动采集wifi信息,NO表示不可以,默认为YES
 */
- (BOOL)isWiFiInfoEnable;

/**
 用于判断是否允许SDK主动采集ip信息,用于实现网络链路的选择与优化,确保稳定地提供MobPush产品和/或服务,以及为了检测并实现与特定区域相关的服务

 @return YES表示SDK可以主动采集ip信息,NO表示不可以,默认为YES
 */
- (BOOL)isIpEnable;

/**
 APP提供wifi地址信息
 当SDK被拒绝主动采集wifi地址信息后(isWiFiInfoEnable返回NO),会通过此方法向App请求wifi地址信息

 @return wifi名称信息,如果返回 nil 则表示不提供wifi地址信息,默认为nil
 */
- (NSString* _Nullable)getBSSID;

/**
 APP提供wifi名称信息
 当SDK被拒绝主动采集wifi名称信息后(isWiFiInfoEnable返回NO),会通过此方法向App请求wifi名称信息

 @return wifi名称信息,如果返回 nil 则表示不提供wifi名称信息,默认为nil
 */
- (NSString* _Nullable)getSSID;

/**
 APP提供 蜂窝 ipv4 信息
 当SDK被拒绝主动采集 蜂窝 ipv4 信息后(isIpEnable返回NO),会通过此方法向App请求 蜂窝 ipv4 信息

 @return 蜂窝 ipv4信息,如果返回nil则表示不提供蜂窝ipv4信息,默认为nil
 */
- (NSString* _Nullable)getCellIpv4;

/**
 APP提供 蜂窝ipv6 信息
 当SDK被拒绝主动采集 蜂窝ipv6 信息后(isIpEnable返回NO),会通过此方法向App请求蜂窝ipv6信息

 @return 蜂窝ipv6信息,如果返回nil则表示不提供蜂窝ipv6信息,默认为nil
 */
- (NSString* _Nullable)getCellIpv6;

/**
 APP提供 wifi ipv4 信息
 当SDK被拒绝主动采集 wifi ipv4 信息后(isIpEnable返回NO),会通过此方法向App请求蜂窝wifi ipv4信息

 @return wifi ipv4 信息,如果返回nil则表示不提供 wifi ipv4 信息,默认为nil
 */
- (NSString* _Nullable)getWifiIpv4;

/**
 APP提供 wifi ipv6 信息
 当SDK被拒绝主动采集 wifi ipv6 信息后(isIpEnable返回NO),会通过此方法向App请求蜂窝wifi ipv6信息

 @return wifi ipv6 信息,如果返回nil则表示不提供 wifi ipv6 信息,默认为nil
 */
 - (NSString* _Nullable)getWifiIpv6;
  • 当上述数据开关接口返回 YES时,MobPush被允许自行获取相应数据;
  • 当上述开关接口返回 NO时,MobPush被禁止自行获取相应数据,仅允许向 App请求相应数据。此时 App可选择是否回传相应数据。

2-3、其它配置

其它 App数据采集主动控制器的配置方法,可参考:https://www.mob.com/wiki/detailed?wiki=675\&id=714
3、接入方法

3-1、声明一个类,遵守协议 MOBFoundationPrivacyDelegate

示例代码:

复制代码
#import <MOBFoundation/MOBFoundation.h>

/**
 自定义数据配置控制类,准守协议MOBFoundationPrivacyDelegate

 */
@interface MobCustomController : NSObject <MOBFoundationPrivacyDelegate>

@end

@implementation MobCustomController

- (BOOL)isWiFiInfoEnable
{
    return YES;
}

- (NSString *)getSSID
{
    return nil;
}

- (NSString *)getBSSID
{
    return nil;
}

- (BOOL)isIdfvEnable
{
    return YES;
}

- (NSString* _Nullable)getIdfv
{
    return nil;
}

- (BOOL)isIdfaEnable
{
    return YES;
}

- (NSString* _Nullable)getIdfa
{
    return nil;
}

- (BOOL)isLocInfoEnable
{
    return YES;
}

- (CLLocation *)getLoc
{
    return nil;
}

- (BOOL)isIpEnable
{
    return YES;
}

@end

3-2、通过隐私提交接口设置 自定义类 MobCustomController 实例

复制代码
#import <MOBFoundation/MOBFoundation.h>

MobCustomController *privacyDataServie = [MobCustomController new];
[MobSDK uploadPrivacyPermissionStatus:YES privacyDataDelegate:privacyDataServie onResult:^(BOOL success) {

}];

注意:通过隐私提交接口设置 MobCustomController 实例时,必须每次启动 APP 时,均调用该接口进行设置。若您的 APP 并非每次启动都会调用隐私提交接口,也可以通过MobSDKsetPrivacyDataDelegate:privacyDataServie; 接口进行设置。

3-3、(可选)通过 setPrivacyDataDelegate: 接口设置 MobCustomController 实例

复制代码
#import <MOBFoundation/MOBFoundation.h>

TestPrivacyDataService *privacyDataServie = [TestPrivacyDataService new];
[MobSDK setPrivacyDataDelegate:privacyDataServie];

setPrivacyDataDelegate:接口调用时机说明:

  • 建议在应用启动时尽快调用该接口,比如

application:didFinishLaunchingWithOptions: 中

  • 该接口必须每次启动都调用
相关推荐
传奇开心果编程1 小时前
【SwiftUI入门练中学】第17课 通知与后台任务
学习·ui·ios·swiftui·swift
yqj2346 小时前
ESP32-S3中小智项目优化内容
ide·macos·xcode
ii_best13 小时前
按键精灵手机端开发安卓版实战:手写一个可最小化、可拖动的「运行日志悬浮窗」(附完整 源码 + 踩坑记录)
android·ios·智能手机·自动化·ai编程·按键精灵
美狐美颜SDK开放平台14 小时前
Android与iOS直播APP美颜有什么区别?视频美颜SDK开发详解
android·ios·音视频·视频美颜sdk
Mininglamp_27181 天前
Cider量化配置与性能调优:在M系列Mac上压榨Mano-P的每一点推理性能
macos
xuefuhe1 天前
MacOS EAGAIN无法打开terminal
macos
传奇开心果编程2 天前
【SwiftUI入门练中学】第7课 动画与手势:让界面更灵动
学习·macos·ui·ios·swiftui·swift
知潮网2 天前
发售刚十天,9999 元的 iPhone 18 Pro 解锁就重启
ios·iphone
2501_916007472 天前
苹果应用商店App Store上架费用标准及原因解析
android·ios·小程序·https·uni-app·iphone·webview
the3clipse2 天前
MacOS、Linux 与 Windows 视频编解码对比:AV1、HEVC、ProRes 与硬件加速优劣势
linux·windows·macos·hevc·av1·视频解码·硬件解码