Saya menggunakan metode Android asli di aplikasi flutter saya menggunakan dokumentasi yang mengatakan penggunaan
MethodChannel(flutterView, CHANNEL).setMethodCallHandler...
tapi setelah memutakhirkan flutter MethodChannel
fungsi tidak memerlukan flutterView
dan tidak ada flutterView
lagi.
can not resolve method getFlutterView()
saya pikir harus ada tutorial baru untuk membuat saluran
melainkan membutuhkan beberapa BinaryMessenger
yang saya tidak tahu harus memberi apa.
ini adalah kode lama yang tidak berfungsi lagi:
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
sumber
sumber
Pindahkan ini
import io.flutter.embedding.android.FlutterActivity;
Tambahkan impor ini
io.flutter.app.FlutterActivity;
Bekerja untukku
sumber
Cukup tambahkan metode ini ke kelas Anda:
Dan kemudian secara opsional ganti semua (Refactor> Ubah nama) "getFlutterView" menjadi "getBinaryMessenger" untuk memiliki kode yang lebih mudah dibaca:
sumber
Saya menghabiskan waktu berhari-hari untuk mencari tahu cara menambahkan Flutter UI ke Aplikasi Android saya yang ada. Tantangan terbesar adalah membuat MethodChannel bekerja dengan FlutterActivity dipanggil dari MainActivity. Saya tahu ini sedikit berbeda dari pertanyaan yang diajukan di sini, tetapi postingan ini dikembalikan ketika saya mencari 'Android FlutterActivity MethodChannel'. Setelah melalui banyak sumber tentang cara melakukan ini, saya akhirnya menemukan solusi saya di sini: https://github.com/flutter/samples/tree/master/add_to_app/android_using_plugin/app/src/main/java/dev/flutter/ contoh / android menggunakanplugin
Awalnya, di Android Studio, dengan aplikasi yang ada dibuka, saya mengetuk File, New, New Module, Flutter Module. Saya menerima kesalahan dan harus melakukan langkah-langkah manual.
Tujuan saya adalah meluncurkan FlutterActivity (membuka main.dart di flutter_module) di MainActivity - onCreate, kemudian mengembangkan 'layar' yang meningkatkan sebanyak mungkin kode Flutter asli sebanyak mungkin, dengan panggilan Platform terbatas menggunakan MethodChannel. Saat saya mengembangkan kode Flutter pengganti, saya akan terus mengomentari Kode Android yang ada.
Inilah yang akhirnya berhasil untuk saya:
../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
sumber