如何在iOS中使用UISceneDelegate初始化FlutterMethodChannel?
我的iOS应用使用FlutterMethodChannel,并且我正在采用这里描述的新UISceneDelegate策略:https://docs.flutter.dev/release/breaking-changes/uiscenedelegate
我正在尝试在 didInitializeImplicitFlutterEngine 中初始化它,并且在这行代码上遇到了崩溃:
let controller : FlutterViewController = window?.rootViewController as! FlutterViewController
网页说这行代码可能在 application:didFinishLaunchingWithOptions: 中导致崩溃,但我没想到会在 didInitializeImplicitFlutterEngine 出现。
网页还提到使用定制的FlutterViewController,但根据该页面的描述,我认为它不适用于我的情况。
如果需要,我愿意提供解决问题所需的任何其他信息。
解决方案
如果其他人也有我同样难以置信的思维堵塞,以下是在 didInitializeImplicitFlutterEngine 中设置FlutterMethodChannel的正确代码:
// Create method channels with `engineBridge.applicationRegistrar.messenger()`
let batteryChannel = FlutterMethodChannel(
name: "samples.flutter.dev/battery",
binaryMessenger: engineBridge.applicationRegistrar.messenger()
)
在第2 节里写得很清楚;我只需要复制粘贴他们的代码,并将通道名称改成与我的匹配。
- 在
didInitializeImplicitFlutterEngine中创建方法通道和平台视图(如适用)。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。