używałem natywnej metody Androida w mojej aplikacji do trzepotania, korzystając z dokumentacji, która mówiła o użyciu
MethodChannel(flutterView, CHANNEL).setMethodCallHandler...
ale po aktualizacji trzepotanie MethodChannel
funkcja nie wymaga flutterView
i nie ma jej flutterView
już.
can not resolve method getFlutterView()
Myślę, że powinien być nowy samouczek dotyczący tworzenia kanału
zamiast tego potrzebuje trochę, BinaryMessenger
których nie wiem, co dać.
to jest stary kod, który już nie działa:
import io.flutter.app.FlutterActivity;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result;
public class MainActivity extends FlutterActivity {
private static final String CHANNEL = "samples.flutter.dev/battery";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
new MethodCallHandler() {
@Override
public void onMethodCall(MethodCall call, Result result) {
// Note: this method is invoked on the main thread.
// TODO
}
});
}
android
flutter
flutter-channel
Mahmood Bkh
źródło
źródło
Usuń to
import io.flutter.embedding.android.FlutterActivity;
Dodaj ten import
io.flutter.app.FlutterActivity;
Pracował dla mnie
źródło
Po prostu dodaj tę metodę do swojej klasy:
A następnie opcjonalnie zamień wszystkie (get> Zmień nazwę) „getFlutterView” na „getBinaryMessenger”, aby mieć bardziej czytelny kod:
źródło
Spędziłem dni próbując wymyślić, jak dodać interfejs Flutter do mojej istniejącej aplikacji na Androida. Największym wyzwaniem było zmuszenie MethodChannel do współpracy z FlutterActivity wywoływanym z MainActivity. Wiem, że to trochę inne niż pytanie tutaj zadane, ale ten post został zwrócony, kiedy szukałem „Android FlutterActivity MethodChannel”. Po przejrzeniu wielu zasobów, jak to zrobić, w końcu znalazłem tutaj moje rozwiązanie: https://github.com/flutter/samples/tree/master/add_to_app/android_using_plugin/app/src/main/java/dev/flutter/ przykład / androidusingplugin
Początkowo w Android Studio, z otwartą istniejącą aplikacją, dotknąłem Plik, Nowy, Nowy moduł, Moduł trzepotania. Wystąpił błąd i musiałem wykonać ręczne czynności.
Moim celem jest uruchomienie FlutterActivity (otwiera main.dart w module flutter_module) w MainActivity - onCreate, a następnie opracowywanie ekranów Fluttera przy użyciu możliwie największej liczby rodzimych kodów Flutter, z ograniczoną liczbą wywołań platformy za pomocą MethodChannel. W trakcie opracowywania zastępczego kodu Flutter będę nadal komentować istniejący kod Androida.
Oto, co w końcu dla mnie zadziałało:
../App_Project/Android/Existing_Android_App/settings.gradle
../App_Project/Android/Existing_Android_App/app/build.gradle
../App_Project/Android/Existing_Android_App/app/src/main/AndroidManifest.xml
../App_Project/Android/Existing_Android_App/app/src/main/java/com/existing_android_app/MainActivity.java
../App_Project/flutter_module/lib/home_page.dart
źródło