gpt4 book ai didi

objective-c - 如何使用flutter在iOS上以编程方式显示Airplay面板

转载 作者:行者123 更新时间:2023-12-04 11:35:39 52 4
gpt4 key购买 nike

所需的输出如下所示,
desired output
如何使用flutter以编程方式在点击事件上显示这一点(如果可能的话,即使使用 native 代码),如果有人能展示一个例子,我们真的很感激。
如果没有直接的方法,那么使用 MethodChannel 的平台特定示例也非常受欢迎。 native 代码示例必须在 Objective-C 中。
另外我尝试使用 flutter_to_airplay但是项目无法运行并且还具有在此上下文中不需要的其他功能,需要的只是显示 Airplay 面板。
(M123 native 代码的答案完全不起作用)

最佳答案

Here是如何在 objective-c 中打开 AirPlayPanel 的示例。
设置 flutter
首先,您必须创建一个 channel 。开始与 native 代码通信。

All channel names used in a single app must be unique; prefix thechannel name with a unique ‘domain prefix

static const platform = const MethodChannel('stack.M123.dev/airplay');

然后你必须在方法 channel 上调用一个方法。
  Future<void> _openAirPlay() async {
try {
await platform.invokeMethod('openAirPlay');
} on PlatformException catch (e) {
print('error');
}


}

原生部分
现在 flutter 部分完成了。
首先,您必须添加对 swift 的支持。为此,使用 XCode 打开 flutter 根目录中的 ios 文件夹。
Expand Runner > Runner in the Project navigator.
打开位于项目导航器中 Runner > Runner 下的 AppDelegate.m。
创建一个 FlutterMethodChannel 并在应用程序 didFinishLaunchingWithOptions: 方法中添加一个处理程序。确保使用与 Flutter 客户端使用的 channel 名称相同的 channel 名称。
#import <Flutter/Flutter.h>
#import "GeneratedPluginRegistrant.h"

@implementation AppDelegate
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
FlutterViewController* controller = (FlutterViewController*)self.window.rootViewController;

FlutterMethodChannel* airPlayChannel= [FlutterMethodChannel
methodChannelWithName:@"stack.M123.dev/airplay"
binaryMessenger:controller.binaryMessenger];

[airPlayChannel setMethodCallHandler:^(FlutterMethodCall* call, FlutterResult result) {
// Note: this method is invoked on the UI thread.
if ([@"getBatteryLevel" isEqualToString:call.method]) {
int returnValue = [weakSelf openAirPlay];


result(@(returnValue));

}];

[GeneratedPluginRegistrant registerWithRegistry:self];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
在 AppDelegate 类中添加方法,就在 @end 之前
- (int)openAirPlay {
//Open air play
return (int)(100);

}
Discalimer :我不是 IOS 开发人员,因此这些步骤主要是理论性的。
我正在遵循 Flutter 的官方指南。它可以在全长 here中找到.

关于objective-c - 如何使用flutter在iOS上以编程方式显示Airplay面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65808270/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com