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

  • 该接口必须每次启动都调用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/765029.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【工具】VS Code使用global插件实现代码跳转

&#x1f41a;作者简介&#xff1a;花神庙码农&#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向&#xff09;&#x1f433;博客主页&#xff1a;花神庙码农 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列专栏&#xff1a;善假于物&#…

Android SQLite 数据库存学习与总结

Android 系统内置了一个名为 SQLite 数据库。那么 SQLite 是一种什么样的数据库&#xff0c;它有那些特点&#xff0c;应该怎么操作它&#xff1f;下面&#xff0c;让我们就来认识一下它吧。 1、概念&#xff1a; SQLite 是一种轻量级的关系型数据库&#xff0c;它不仅支持标准…

C++ (第二天下午---面向对象之类与对象)

一、面向过程与面向对象 1、面向过程 面向过程是一种以事件为中心的编程思想&#xff0c;编程的时候把解决问题的步骤分析出来&#xff0c;然后用函数把这些步骤实现&#xff0c;在一步一步的具体步骤中再按顺序调用函数。 举个例子&#xff0c;下五子棋&#xff0c;面向过程…

通过docker overlay2 目录名查找占用磁盘空间最大的容器名和容器ID

有时候经常会有个别容器占用磁盘空间特别大&#xff0c; 这个时候就需要通过docker overlay2 目录名查找占用磁盘空间最大的容器名和容器ID&#xff1a; 1、 首先进入到 /var/lib/docker/overlay2 目录下,查看谁占用的较多 [rootPPS-97-8-ALI-HD1H overlay2]# cd /var/lib/doc…

Vue 全局状态管理新宠:Pinia实战指南

文章目录 前言全局状态管理基本步骤&#xff1a;pinia 前言 随着Vue.js项目的日益复杂&#xff0c;高效的状态管理变得至关重要。Pinia作为Vue.js官方推荐的新一代状态管理库&#xff0c;以其简洁的API和强大的功能脱颖而出。本文将带您快速上手Pinia&#xff0c;从安装到应用&…

【C语言】bool 关键字

在C语言中&#xff0c;bool类型用于表示布尔值&#xff0c;即真或假。C语言本身在标准库中并未提供布尔类型&#xff0c;直到C99标准引入了stdbool.h头文件。该头文件定义了bool类型&#xff0c;以及两个常量&#xff1a;true和false。在此之前&#xff0c;通常使用整数来表示布…

[方法] 为Cinemachine添加碰撞器

选中场景中的Cinemachine物体&#xff0c;在 Inspector 面板的最下方单击 Add Extension 下拉框&#xff0c;选择 CinemachineCollider。 之后在添加的碰撞器组件中选择要与之碰撞的层&#xff08;Collide Against&#xff09;和忽略的层&#xff08;Transparent Layers&#x…

配置atuin记录

https://atuin.sh/ 运行 curl --proto https --tlsv1.2 -LsSf https://setup.atuin.sh | sh报错 $ curl --proto https --tlsv1.2 -LsSf https://setup.atuin.sh | sh curl: (77) error setting certificate verify locations:CAfile: /etc/ssl/certs/ca-certificates.crtCAp…

2025中国淄博化工展|淄博化工技术展|淄博化工装备展

CTEE2025第九届中国&#xff08;淄博&#xff09;化工技术装备展览会 时间&#xff1a;2025年5月16-18日 地点&#xff1a;山东淄博国际会展中心 主办单位:山东省机械工业科学技术协会 青岛蓝博国际会展有限公司 众所周知&#xff0c;山东省是我国化工大省。2023年上半年&am…

Unity 动画事件

Unity中的动画事件是一种在动画播放过程中触发自定义行为的方法。动画事件允许开发者在动画的特定时间点执行代码&#xff0c;例如播放声音、改变游戏状态或触发其他动画。以下是使用Unity动画事件的一些关键点&#xff1a; 动画事件的创建&#xff1a;在Unity的Animation窗口…

Linux kfence使用与实现原理

0 背景 为了更好的检测linux kernel中内存out-of-bounds、mem-corruption、use-after-free、invaild-free等问题&#xff0c;调研了kfence功能&#xff08;该功能在linux kernel 5.12引入&#xff09;&#xff0c;帮助研发更好的分析与定位这类内存错误的问题。 一、kfence介…

【Unity 人性动画的复用性】

Unity的动画系统&#xff0c;通常称为Mecanim&#xff0c;提供了强大的动画复用功能&#xff0c;特别是针对人型动画的重定向技术。这种技术允许开发者将一组动画应用到不同的角色模型上&#xff0c;而不需要为每个模型单独制作动画。这通过在模型的骨骼结构之间建立对应关系来…

V Rising夜族崛起的管理员指令大全

使用方法&#xff1a; 如果没有启用控制台需要先启用控制台 打开游戏点击选项&#xff08;如果在游戏内点击ESC即可&#xff09;&#xff0c;在通用页面找到启用控制台&#xff0c;勾选右边的方框启用 在游戏内点击键盘ESC下方的波浪键&#xff08;~&#xff09;使用控制台 指…

JAVA妇产科专科电子病历系统源码,前端框架:Vue,ElementUI

JAVA妇产科专科电子病历系统源码&#xff0c;前端框架&#xff1a;Vue&#xff0c;ElementUI孕产妇健康管理信息管理系统是一种将孕产妇健康管理信息进行集中管理和存储的系统。通过建立该系统&#xff0c;有助于提高孕产妇健康管理的效率和质量&#xff0c;减少医疗事故发生的…

LSH算法:高效相似性搜索的原理与Python实现I

局部敏感哈希&#xff08;LSH&#xff09;技术是快速近似最近邻&#xff08;ANN&#xff09;搜索中的一个关键方法&#xff0c;广泛应用于实现高效且准确的相似性搜索。这项技术对于许多全球知名的大型科技公司来说是不可或缺的&#xff0c;包括谷歌、Netflix、亚马逊、Spotify…

【你也能从零基础学会网站开发】理解DBMS数据库管理系统架构,从用户到数据到底经历了什么

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 其实前面我们也…

最新CRMEB商城多商户java版源码v1.6版本+前端uniapp

CRMEB 开源商城系统Java版&#xff0c;基于JavaVueUni-app开发&#xff0c;在微信公众号、小程序、H5移动端都能使用&#xff0c;代码全开源无加密&#xff0c;独立部署&#xff0c;二开很方便&#xff0c;还支持免费商用&#xff0c;能满足企业新零售、分销推广、拼团、砍价、…

Monkey测试

Monkey测试是一种自动化测试技术&#xff0c;它通过模拟用户在设备上的随机操作&#xff0c;来对应用程序进行压力测试。它的目的是测试软件的稳定性和健壮性。 Monkey测试有以下几个特点&#xff1a; 随机输入&#xff1a; Monkey测试不需要编写详细的测试用例&#xff0c;只…

【博主推荐】HTML5实现简洁好看的个人简历网页模板源码

文章目录 1.设计来源1.1 主界面1.2 关于我界面1.3 工作经验界面1.4 学习教育界面1.5 个人技能界面1.6 专业特长界面1.7 朋友评价界面1.8 获奖情况界面1.9 联系我界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c…

怎么把录音转文字?推荐几个简单易操作的方法

在小暑这个节气里&#xff0c;炎热的天气让人分外渴望效率up&#xff01;Up&#xff01;Up&#xff01; 对于那些在会议或课堂中急需记录信息的朋友们&#xff0c;手写笔记的速度往往难以跟上讲话的节奏。此时&#xff0c;电脑录音转文字软件就像一阵及时雨&#xff0c;让记录…