iOS12以上版本 直播屏幕 遇到的坑 Replay

2020-11-23  本文已影响0人  cattsoft

背景:app升级版本,需要新建项目,移植功能模块。

弹出extension列表,发现什么都没有,找了半天原因,又把之前的流程理了一遍,没发现问题。

如图:

什么app都没有。。。

最后在新建项目里发现了问题,我用的测试手机系统版本是iOS12.0,但是新建的extension APP版本太高了!!!

如图:

意识到这个问题后就没有问题了,把iOS14.0改成12.0运行后成功了。

如图:

==============================================================

1      RPSystemBroadcastPickerView    寻找button。

代码如下:

.h 文件

#import

NS_ASSUME_NONNULL_BEGIN

@interface RPSystemBroadcastPickerView (FindButton)

- (UIButton *)findButton;

@end

NS_ASSUME_NONNULL_END

.m 文件

#import "RPSystemBroadcastPickerView+FindButton.h"

@implementation RPSystemBroadcastPickerView (FindButton)

- (UIButton *)findButton {

    return [self findButton:self];

}

- (UIButton*)findButton:(UIView*)view {

    if(!view.subviews.count) {

        returnnil;

    }

    if ([view isKindOfClass:[UIButton class]]) {

        return(UIButton*)view;

    }

    UIButton*btn;

    for(UIView*subViewinview.subviews) {

        UIView*destinationView = [selffindButton:subView];

        if(destinationView) {

            btn = (UIButton*)destinationView;

            break;

        }

    }

    returnbtn;

}

@end

2 : 初始化

#pragma mark 初始化系统录屏按钮 RPSystemBroadcastPickerView

    if(@available(iOS12.0, *)) {

        self.picker = [[RPSystemBroadcastPickerView alloc] initWithFrame:CGRectZero];

        //不显示话筒,麦克风按钮默认显示

        self.picker.showsMicrophoneButton = NO;

        //preferredExtension设置成自己的 bundel ID就只会显示自己记得APP Extension,默认显示的是所有的Extension列表,包括其他APP的Extension

        self.picker.preferredExtension = @"你的APP Extension的bundel ID";

    }else{

        // Fallback on earlier versions

    }

3: 使用

@property (nonatomic,strong)RPSystemBroadcastPickerView *picker;

#pragma mark显示Extension列表

    //直接获取RPSystemBroadcastPickerView的button

    UIButton*btn = [self.picker findButton];

    //调用button点击方法,去显示Extension列表

    [btn sendActionsForControlEvents:UIControlEventAllTouchEvents];

=============================================================

上一篇下一篇

猜你喜欢

热点阅读