iOS 开屏广告页

开屏广告

此处通过第三方库实现,GitHub地址:XHLaunchAd,在这里插入图片描述
具体使用方法, 自定义类,实现XHLaunchAdDelegate, 在类被夹在时候会设置开屏广告的相关信息.

@interface TGLaunchAdManager ()<XHLaunchAdDelegate>

@end

@implementation TGLaunchAdManager

+ (void)load {
    [self shareManager]; 
}

+ (TGLaunchAdManager *)shareManager {
    static TGLaunchAdManager *instance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance = [[TGLaunchAdManager alloc] init];
    });
    return instance;
}

- (instancetype)init {
    self = [super init];
    if (self) {
        [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidFinishLaunchingNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
            // 初始化启动页广告
            [self _setupLaunchAd];
        }];
    }
    return self;
}

- (void)_setupLaunchAd {
    //设置你工程的启动页使用的是:LaunchImage 还是 LaunchScreen.storyboard(不设置默认:LaunchImage)
    [XHLaunchAd setLaunchSourceType:SourceTypeLaunchImage];
    //1.因为数据请求是异步的,请在数据请求前,调用下面方法配置数据等待时间.
    //2.设为3即表示:启动页将停留3s等待服务器返回广告数据,3s内等到广告数据,将正常显示广告,否则将不显示
    //3.数据获取成功,配置广告数据后,自动结束等待,显示广告
    //注意:请求广告数据前,必须设置此属性,否则会先进入window的的根控制器
    [XHLaunchAd setWaitDataDuration:3];
    // 获取通用信息
    TGAppInfoModel *model = [TGSystemHelper shareInstance].appInfoModel;
    if (!KObjectIsEmpty(model)) {
        //配置广告数据
        XHLaunchImageAdConfiguration *imageAdconfiguration = [XHLaunchImageAdConfiguration new];
        //广告停留时间
        imageAdconfiguration.duration = 3;
        //广告frame
        imageAdconfiguration.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
        //广告图片URLString/或本地图片名(.jpg/.gif请带上后缀)
        imageAdconfiguration.imageNameOrURLString = model.app_page.welcome_page;
        //设置GIF动图是否只循环播放一次(仅对动图设置有效)
        imageAdconfiguration.GIFImageCycleOnce = NO;
        //缓存机制(仅对网络图片有效)
        //为告展示效果更好,可设置为XHLaunchAdImageCacheInBackground,先缓存,下次显示
        imageAdconfiguration.imageOption = XHLaunchAdImageCacheInBackground;
        //图片填充模式
        imageAdconfiguration.contentMode = UIViewContentModeScaleAspectFill;
        //广告点击打开页面参数(openModel可为NSString,模型,字典等任意类型)
        imageAdconfiguration.openModel = @"https://github.com/CoderZhuXH/XHLaunchAd";
        //广告显示完成动画
        imageAdconfiguration.showFinishAnimate =ShowFinishAnimateLite;
        //广告显示完成动画时间
        imageAdconfiguration.showFinishAnimateTime = 0.5;
        //跳过按钮类型
        imageAdconfiguration.skipButtonType = SkipTypeTimeText;
        //后台返回时,是否显示广告
        imageAdconfiguration.showEnterForeground = NO;
         //图片已缓存 - 显示一个 "已预载" 视图 (可选)
        if([XHLaunchAd checkImageInCacheWithURL:[NSURL URLWithString:model.app_page.welcome_page]]){
            //设置要添加的自定义视图(可选)
            imageAdconfiguration.subViews = [self launchAdSubViews_alreadyView];
        }
        //显示开屏广告
        [XHLaunchAd imageAdWithImageAdConfiguration:imageAdconfiguration delegate:self];
    }
}
/// 开屏广告点击事件
- (void)xhLaunchAd:(XHLaunchAd *)launchAd clickAndOpenModel:(id)openModel clickPoint:(CGPoint)clickPoint {
    if(openModel==nil) return;
    /*
    BaseWebController *vc = [[BaseWebController alloc] initWithViewModel:nil];
    vc.loadingProgressColor = [UIColor grayColor];
    vc.canDownRefresh = YES;
    NSString *urlString = (NSString *)openModel;
    vc.url = urlString;
     
    [[AppDelegate sharedDelegate].navigationControllerStack.topNavigationController pushViewController:vc animated:YES];
     */
}

- (NSArray<UIView *> *)launchAdSubViews_alreadyView {
    CGFloat y = KISIPhoneXSeries() ? 46 : 22;
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width-140, y, 60, 30)];
    label.text  = @"已预载";
    label.font = [UIFont systemFontOfSize:12.f];
    label.textColor = [UIColor whiteColor];
    label.textAlignment = NSTextAlignmentCenter;
    label.layer.cornerRadius = 15.0;
    label.layer.masksToBounds = YES;
    label.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
    return [NSArray arrayWithObject:label];
}

@end
<think>好的,用户之前问过如何在钉钉上屏蔽公司设置的开屏动画,我给出了常规方法和进阶方法。现在用户的新问题是,作为普通员工,无法与管理员沟通,并且使用的是iOS系统,该怎么屏蔽。我需要先分析用户的具体情况和需求。 首先,用户是普通员工,可能没有权限联系管理员或者管理员不愿意配合关闭开屏动画。其次,用户使用iOS系统,之前的方法中有涉及ADB命令和root,这些在iOS上不适用。所以需要针对iOS的特点来考虑解决方案。 接下来,我需要回想iOS的限制。iOS系统封闭性较高,普通用户没有越狱的话,很难修改系统文件或使用类似ADB的工具。所以常规的修改方法可能行不通。用户可能已经尝试过双击跳过或者返回键,但可能无效,或者用户希望完全屏蔽而不是每次手动跳过。 然后,考虑可能的替代方案。比如使用快捷指令自动化,或者辅助功能中的点击设置,模拟用户点击跳过动画。不过钉钉的开屏动画可能没有可点击的跳过按钮,或者按钮位置不固定,这样自动化工具可能无法准确识别。 另外,用户可能不想越狱,因为这样会失去保修和安全风险。所以需要提供无需越狱的方法。可能还可以建议使用旧版本钉钉,但App Store可能不允许降级,且旧版本可能有安全漏洞或功能缺失。 还需要考虑用户的需求是否合理。企业设置开屏动画通常是公司政策,用户可能觉得干扰使用,但绕过可能违反公司规定。需要提醒用户注意合规风险,避免带来麻烦。 总结可能的步骤:1. 检查钉钉设置是否有隐藏选项;2. 使用快捷指令模拟点击;3. 辅助功能中的点击手势;4. 反馈给钉钉客服;5. 使用网版或小程序避免客户端开屏。同时强调这些方法可能无效或存在风险,建议用户谨慎操作。 需要验证这些方法的可行性。比如快捷指令是否能真正跳过开屏,可能需要具体的步骤。另外,iOS的辅助功能如“切换控制”或“语音控制”能否设置特定点击位置。如果动画时间固定,或许可以定时点击,但实际操作可能不稳定。 最后,应该以清晰的结构分点回答,先常规方法,再进阶尝试,并提醒风险。同时强调在无法联系管理员的情况下,这些方法可能有限,建议用户理解公司的管理策略。以下是</think>针对 **iOS 系统且无法联系管理员时屏蔽钉钉企业开屏动画** 的解决方案(需权衡效果与风险): --- ### 一、常规尝试(优先推荐) #### 1. **快速点击跳过** - **原理**:部分钉钉版本允许快速双击屏幕或右下角跳过按钮(非企业定制动画可能支持)。 - **操作**:开屏动画出现时,连续快速点击屏幕右下角区域(成功率取决于动画类型)。 #### 2. **使用低版本钉钉** - **方法**:通过第三方平台下载旧版钉钉 IPA 文件(如 v6.5.5 以下),企业开屏动画功能可能未强制启用。 - **风险**:需关闭苹果账号自动更新,且旧版本存在安全隐患或功能缺失。 --- ### 二、进阶尝试(需接受部分限制) #### 1. **iOS 快捷指令自动化** - **原理**:利用“快捷指令”模拟点击操作(需动画时间固定且跳过按钮位置可预测)。 - **步骤**: 1. 创建快捷指令 → 添加「打开 App」选择钉钉 → 添加「等待」设定动画时长(如 2 秒) → 添加「点击屏幕坐标」(需越狱或第三方工具辅助)。 2. 通过自动化触发:钉钉启动时自动运行该指令。 - **限制**:iOS 原生功能无法直接获取屏幕坐标,需借助其他工具(如 [Voice Control 标记坐标](https://support.apple.com/zh-cn/guide/iphone/iph3e2e415f/ios)),操作复杂且成功率低。 #### 2. **辅助功能(引导式访问)** - **原理**:锁定钉钉界面跳过后续加载动画(仅对部分版本有效)。 - **步骤**: 1. 设置 → 辅助功能 → 引导式访问 → 开启。 2. 启动钉�前,连按三次电源键进入引导式访问模式,锁定在当前界面。 - **效果**:可能直接跳过开屏,但也可能卡死应用。 --- ### 三、曲线方案(避开客户端) #### 1. **使用钉钉网版** - 访问 [钉钉网版](https://im.dingtalk.com/) 或 **桌面端**(Mac/Windows),无开屏动画干扰,但功能受限(如无法打卡、审批等)。 #### 2. **消息通知替代** - 关闭钉钉后台刷新,仅通过系统通知栏查看消息(需牺牲部分实时性)。 --- ### 四、关键限制与风险说明 1. **iOS 系统封闭性**: - 无法像 Android 通过 ADB 禁用组件,越狱修改文件风险极高(设备变砖/封号)。 2. **企业管控逻辑**: - 开屏动画由企业管理员云端控制,客户端本地修改可能被覆盖。 3. **合规风险**: - 绕过企业定制功能可能触发钉钉安全检测(如提示账号异常)。 --- ### 五、建议优先级 ``` 常规点击跳过 > 使用网版 > 尝试旧版钉钉 > 谨慎使用快捷指令/辅助功能 ``` **最终结论**:iOS 系统限制严格,若企业强制开屏动画且无法沟通管理员,**几乎无法彻底屏蔽**,建议接受或通过网版降低使用频率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值