EEYatHo 앱 깎는 이야기

Flutter ) Kotlin 코드 호출 - EEYatHo Flutter 본문

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 ->
               // ...
            }
        }
    }
}

 

 

 

Kotiln 코드 호출시 파라미터 넘기기

Comments