У меня есть полностью работающий плагин платформы Flutter с демонстрационным приложением Flutter. Приложение Flutter радостно общается с нативным кодом по каналам и получает ответы. Теперь мне нужно приложение, чтобы работать в фоновом режиме. Следуя различным инструкциям, я обнаружил, что мне нужно вызвать setPluginRegistrantCallback
в моем плагине. Но если я это сделаю, приложение вылетает с:
*** Завершение приложения из-за необработанного исключения 'NSInvalidArgumentException', причина: '+ [MyPlugin setPluginRegistrantCallback:]: нераспознанный селектор отправлен в класс 0x104ed5668'
Мой код:
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
UIApplication.shared.setMinimumBackgroundFetchInterval(UIApplication.backgroundFetchIntervalMinimum)
GeneratedPluginRegistrant.register(with: self)
MyPlugin.setPluginRegistrantCallback({ registry in
if (!registry.hasPlugin("MyPlugin")) {
MyPlugin.register(with: registry.registrar(forPlugin: "MyPlugin"))
}
GeneratedPluginRegistrant.register(with: registry)
})
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
Есть идеи, что мне не хватает? В противном случае плагин и приложение Runner работают нормально.