当前位置: 首页>移动开发>正文

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

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

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

如图:

什么app都没有。。。

iOS12以上版本 直播屏幕 遇到的坑 ReplayKit RPSystemBroadcastPickerView,第1张

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

如图:

iOS12以上版本 直播屏幕 遇到的坑 ReplayKit RPSystemBroadcastPickerView,第2张

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

如图:

iOS12以上版本 直播屏幕 遇到的坑 ReplayKit RPSystemBroadcastPickerView,第3张

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

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];

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


https://www.xamrdz.com/mobile/4k41996153.html

相关文章: