Flutter/Native 코드 호출
Flutter ) Kotlin 코드 호출 - EEYatHo Flutter
EEYatHo
2022. 10. 28. 16:32
공식 문서는 비교적 쉽게 따라할 수 있게 작성되어있다.
하지만 따라했는데 작동이 안된다..
공식 문서가 잘못되서 삽질하면서 수정한 부분을 정리한다.
import io.flutter.app.FlutterActivity
io.flutter.app.FlutterActivity 는 deprecated 되었다.
io.flutter.embedding.android.FlutterActivity 를 사용해야한다.
// import io.flutter.app.FlutterActivity
import io.flutter.embedding.android.FlutterActivity
이에 따라 registerWith 함수도 다르게 사용해야한다.
import io.flutter.plugins.GeneratedPluginRegistrant
// GeneratedPluginRegistrant.registerWith(this)
provideFlutterEngine(this)?.let { GeneratedPluginRegistrant.registerWith(it) }
flutterView 도 다르게 접근해야한다.
// MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->
// // ...
// }
flutterEngine?.dartExecutor?.let {
MethodChannel(it, CHANNEL).setMethodCallHandler { call, result ->
// ...
}
}
전체 MainActivity 코드
import android.os.*
import io.flutter.embedding.android.FlutterActivity
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugins.GeneratedPluginRegistrant
class MainActivity: FlutterActivity() {
private val CHANNEL = "samples.flutter.dev/battery"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
provideFlutterEngine(this)?.let { GeneratedPluginRegistrant.registerWith(it) }
flutterEngine?.dartExecutor?.let {
MethodChannel(it, CHANNEL).setMethodCallHandler { call, result ->
// ...
}
}
}
}
반응형