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: 中

  • 该接口必须每次启动都调用
相关推荐
draking25 分钟前
Anthropic 封杀当天,我把 OpenCode 升到 1.1.11,踩了 5 个坑
macos·ai编程
Roye_ack2 小时前
【Mac环境配置教程】深度学习环境配置(Anaconda + PyTorch)
macos
前端不太难2 小时前
Flutter / RN / iOS,在长期维护下的性能差异本质
flutter·ios
程序员雄杰2 小时前
腾讯云轻量应用服务器mac中ssh免密登录到服务器
macos·ssh·腾讯云
YongPagani20 小时前
Mac安装Homebrew
macos
Byron Loong1 天前
【系统】Mac系统和Linux 指令对比
linux·macos·策略模式
软件小滔1 天前
拖拽出来的专业感
经验分享·macos·mac·应用推荐
搜狐技术产品小编20231 天前
精通 UITableViewDiffableDataSource——从入门到重构的现代 iOS 列表开发指南
ios·重构
coooliang1 天前
Macos下载元神 ipa文件
macos
Benny的老巢1 天前
【n8n工作流入门02】macOS安装n8n保姆级教程:Homebrew与npm两种方式详解
macos·npm·node.js·n8n·n8n工作流·homwbrew·n8n安装